python脚本的linux定时任务
crontab经常会遇到的问题就是环境变量的加载不到的导致脚本运行失败的问题test
在/home/pyapp/anaconda3/envs/cs_test_env/bin/python路径中指定了你的Conda虚拟环境中的Python可执行文件。
我们直接在cron作业中调用了Python脚本,而不是使用source activate
cron的设置
bash
crontab -e
bash
SHELL=/bin/bash
PATH=/usr/bin:/bin:/home/pyapp/anaconda3/bin
31 21 * * * /home/pyapp/anaconda3/envs/cs_test_env/bin/python /home/pyapp/workspace/autotest.py
定时任务的调试方法
临时修改定时任务为每分钟执行
临时更改 cron 时间:如果您确实需要测试脚本在 cron 中的实际行为,可以临时将 cron 时间设置为每分钟一次,例如:
bash
* * * * * /home/pyapp/script/check_sett.sh >> /home/pyapp/cron.log 2>&1
想将标准输出和错误都重定向到 /home/pyapp/cron.log
模拟测试
bash
env -i SHELL=/bin/bash HOME=/home/pyapp USER=pyapp /home/pyapp/script/check_sett.sh >> /home/pyapp/cron.log 2>&1
这里的 >> /home/pyapp/cron.log 将标准输出追加到 cron.log 文件,而 2>&1 将标准错误也重定向到同一个文件。