繁体   English   中英

Crontab作业时间表

[英]Crontab jobs schedule

我对Unix系统很陌生。 我正在尝试在crontab中安排一个python作业,如下所示;

42 15 18 4 *  absolute_path_where_python_is_install absolute_path_to_python_script > absolute_path_to_output_log_file

这什么都不做:没有错误,没有输出但是,当我手动运行下面的代码时,它可以正常工作

absolute_path_where_python_is_install absolute_path_to_python_script > absolute_path_to_output_log_file

有人可以帮我确定我所缺少的吗?

提前致谢。

要调试的几件事:

1.)确保crontab正在运行。

* * * * * date >> /tmp/ping

并检查该文件以确保守护程序按预期工作。

2.)在运行时检查脚本中的错误。 现在,您仅捕获标准输出。 捕获stderr,看看是否可以捕获错误消息

* * * * * python script.py > script.log 2>&1

添加2>&1是重定向,它将文件描述符2(stderr)重定向到文件描述符1(stdout),该文件描述符1发送到日志文件,这意味着stdout和stderr都将最终出现在日志文件中。

3.)验证环境是否在运行时符合预期:

* * * * * env | sort > /tmp/env_in_cron

然后运行

env | sort > /tmp/env_at_runtime

sdiff /tmp/env_at_runtme /tmp/env_in_cron

并查看您是否需要的不是它们(请注意环境的不同)。 如果您缺少某些东西,可以

a。)添加单个参数

* * * * * PYTHONPATH=/python/lib/path python python-script.py > python-script.log

b。)或仅提供完整的环境。

* * * * * . /home/user/.profile && python python-script.py > python-script.log

假设您要通过crontab设置cron,

如果您不需要任何特殊的python软件包

* * * * * python /path/to/file.py

从您的virtualenv运行它

* * * * * /path/to/env/bin/python /path/to/file.py

如果需要设置cron间隔的帮助,请尝试https://crontab.guru

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM