【问题标题】:Cron run my Python script but nothing is happeningCron 运行我的 Python 脚本,但没有任何反应
【发布时间】:2020-07-09 10:15:16
【问题描述】:

我想每天晚上 12:00 运行一个 Python 脚本来清理一个 csv 文件,该文件在白天由另一个脚本自动填充。

我的 csv 文件 code_list.csv 内容在一天结束时看起来像这样:

87698
63753
19742
89876
62765
79832
# etc.

我使用truncate 方法通过此脚本csvclean.py 清理 csv 文件:

import csv

filename = "/root/folder/code_list.csv"
f = open(filename, "w")
f.truncate()
f.close()

这是我的 crontab:

SHELL=/bin/bash
0 0 * * * cd /root/folder && /usr/bin/python3 ./csvclean.py

这两个文件都位于同一文件夹/root/folder

我可以在/var/log/syslog 中看到 cron 在预定时间运行,但在我的 code_list.csv 文件中没有发生任何事情。如果我直接使用python3 csvclean.py 运行脚本,它会完美地清理 csv 文件。

我忘记了什么?

- 编辑-

我使用了此处找到的方法来检索日志。 我像这样编辑了我的 crontab:

*/1 * * * * cd /root/folder && /usr/bin/python3 ./csvclean.py > /root/folder/csvclean.log 2>&1

我在 csvclean.py 脚本的开头添加了这一行:

print 'starting'

我在 cron 之后打开了 csvclean.log 文件,我看到了:

/usr/bin/python3: can't open file './csvclean.py': [Errno 2] No such file or directory

这让我意识到我的 Python 脚本文件名是 cleancsv.py 而不是 csvclean.py

就在我的眼皮底下……

【问题讨论】:

    标签: python csv cron


    【解决方案1】:

    运行此命令:sudo /etc/init.d/cron restart

    设置 crontab 恶魔后必须重启。

    同时检查 sys/log 以跟踪运行脚本时出现的问题。

    【讨论】:

    • 我对此进行了测试并使用*/1 * * * * cd /root/folder && /usr/bin/python3 ./csvclean.py 修改了我的cron。结果相同,cron 正在运行,但在我的 csv 文件中没有效果。
    • 日志中有错误吗? */1 * * * * /usr/bin/python3 /var/www/html/crontest.py 类似添加文件的直接路径。
    • 找到了!请参阅上面我编辑的帖子:Python 脚本文件名完全不同
    • 很高兴知道。至少日志可以帮助您找出原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多