[英]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.