python - Cron 作业不成功

标签 python linux cron

总的来说,我对 Cron 调度和 Linux 还很陌生。我创建了一个 Python 代码 (Test_Analysis.py) 来分析一些数据并生成一个包含分析结果的 Excel 表。然后我将这张 Excel 表格通过电子邮件发送给自己。我的目标是为每天在特定时间运行的此过程(分析和报告电子邮件)创建一个自动计划,比如早上 5 点。

我为此尝试了 Cron 计划。电子邮件未使用 Cron 计划发送。有趣的是,为了了解 Cron 的工作原理,我创建了一个简单的测试脚本 (Test_Cron.py),该脚本还向我发送了一封电子邮件。对于这个脚本,我确实收到了我安排的自动电子邮件。我只是没有为我的原始脚本 (Test_Analysis.py) 获取它们。

这是我的两个脚本的 cron 计划(两个脚本都在同一个文件夹中)

*/1 * * * * python /home/abc/anuj/TPA/Test_Cron.py &> /tmp/Test_Cron.log

*/15 * * * * python /home/abc/anuj/TPA/Test_Analysis.py &> /tmp/Test_Analysis.log

知道我可能做错了什么吗?

PS:我正在使用 SSH 登录远程 Linux 服务器。

最佳答案

在你实际的 Python 脚本(比如 test.py)中,至少必须有 print() 函数,将一些东西输出到标准输出, 说:

def send_email():
    """whatever email logic you implement"""
    pass

def process_cron():
    try:
        send_email()
        print("Successfully sent email")
    except Exception as e:
        print("Error sending email {}".format(e))


process_cron()

然后,调用

python test.py >> test_cron.log

会将脚本的结果(或错误)写入日志,因此您将在 test_cron.log 文件中看到到底发生了什么。如果设置为 cron 选项卡,它将定期记录,您将看到发生了什么。

关于python - Cron 作业不成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48053708/

相关文章:

python - 在 Windows 7 64 位中设置 pip

linux - 使用 docker run 启动容器,现在它没有出现在 docker ps -a 中

Linux 脚本 - 抑制日期时间中的单引号

Python 脚本作为 cron 作业 - 如何将输出格式化为带有附件的电子邮件?

python - == 并且在 python 中

python - 如何在 Python 中解释原始的 RFC 3339 日期时间字符串?

python - 如何定位视频子集的时间戳

linux - 如何在需要的每一行的开头放置逗号

linux - 如何在 cron 表达式中跳过周六和周日?

cron - Docker CentOS 7 - cron 无法在本地计算机上工作