ubuntu - Cron 作业(python 脚本)不写 json 文件

标签 ubuntu cron ubuntu-18.04

在 AWS EC2 上运行的 Ubuntu 机器 18.04。 我有一个 python 脚本,它轮询 API 并将结果写入同一目录中的 json 文件。 我已经设置了一个每 5 分钟运行一次的 cron 作业。 问题是作业运行了,我在日志中看到了,但文件没有写入。当我手动运行脚本时,json 文件按预期写入。

文件夹和.py文件权限为775。

这是 crontab 条目(我从 sudo crontab -e 访问它):

*/5 * * * * ubuntu python3 /home/ununtu/var/www/html/api.py > 
/home/ubuntu/var/www/html/cron.log 2>&1

cron.log 文件显示了 python 脚本的预期输出。 /var/log/syslog 显示:

(root) CMD (ubuntu python3 /home/ununtu/var/www/html/api.py > 
/home/ubuntu/var/www/html/cron.log 2>&1) 

每五分钟一次。

请帮我解决这个问题。

最佳答案

我遇到了同样的问题,但我无法解决...

在我的例子中,我使用 python 库 (BlockingScheduler) 解决了它,并使用 tmux 在后台进程中执行它。

一个简单的用法示例:

from apscheduler.schedulers.blocking import BlockingScheduler

def test():
    test_write = 'hello'
    with open('logs.txt', 'a') as f:
        f.write('test: {}\n'.format(test_write))


scheduler = BlockingScheduler()
scheduler.add_job(test, 'interval', seconds=5)

scheduler.start()

希望对您有所帮助!

关于ubuntu - Cron 作业(python 脚本)不写 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56275039/

相关文章:

postgresql - docker + 港 : [PostgreSQL error] failed to retrieve PostgreSQL server_version_num: connection refused

linux - iptable 用于端口转发

php - PHP逻辑每日更新

java - 每天的spring cron表达式1 :01:am

python - 通过crontab安排python脚本

Python 诗歌在 Ubuntu 上失败

Python "pip install "失败,出现 AttributeError : 'module' object has no attribute 'SSL_ST_INIT'

ubuntu - io.c(605) [Receiver=3.0.9] 处的 rsync 协议(protocol)数据流(代码 12)出错

python - 将域名连接到 django web 服务器

r - 在 Ubuntu 18.04 上安装新 R 后安装 R 依赖项期间出现错误