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 正在 运行ning。添加
* * * * * date >> /tmp/ping
并检查该文件以确保您的守护进程按预期工作。
2.) 检查 运行 上脚本的错误。现在你只捕获标准输出。捕获 stderr 并查看是否可以捕获错误消息
* * * * * python script.py > script.log 2>&1
添加 2>&1
是一个重定向,将文件描述符 2 (stderr) 重定向到文件描述符 1 (stdout),该文件描述符 1 (stdout) 将被发送到日志文件,这意味着 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
我是 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 正在 运行ning。添加
* * * * * date >> /tmp/ping
并检查该文件以确保您的守护进程按预期工作。
2.) 检查 运行 上脚本的错误。现在你只捕获标准输出。捕获 stderr 并查看是否可以捕获错误消息
* * * * * python script.py > script.log 2>&1
添加 2>&1
是一个重定向,将文件描述符 2 (stderr) 重定向到文件描述符 1 (stdout),该文件描述符 1 (stdout) 将被发送到日志文件,这意味着 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