Cron作业(Python脚本)未写入json文件

时间:2019-05-23 12:16:49

标签: ubuntu cron ubuntu-18.04

Ubuntu计算机18.04在AWS EC2上运行。 我有一个轮询API的python脚本,并将结果写入同一目录中的json文件。 我已经建立了一个cron作业,每5分钟运行一次。 问题是该作业正在运行,我在日志中看到它,但是未写入文件。当我手动运行脚本时,将按预期方式写入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) 

每五分钟

请帮助我解决这个问题。

1 个答案:

答案 0 :(得分:0)

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

在我的情况下,我使用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()

希望有帮助!