在工作中我们经常会写一个python脚本,然后想通过定时任务去执行,这时我们会想到crontab.
通过 crontab -e去设置crontab
例如:0 0 * * * python /data/webapps/cmdb.import.api/routine_analysis_halog.py
这时如果你的脚本中会有涉及读取配置文件或者读写文件的动作,一般你的定时任务都不会执行.
因为你的脚本在执行时,由于是通过crontab去执行的,他的执行目录会变成当前用户的家目录,如果是root,就会在/root/下执行.
所以这样设置定时任务是不行的.
我们也可以通过在/etc/cron.d下新建一个文件去指定定时任务执行目录的方式去设置定时任务.
如:
[root@zb_10-0-3-72_lin_opsipaddressmanager cron.d]# cat /etc/cron.d/sync_jira SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/data/webapps/ops.manage.ui 0 5 * * * root python manage.py sync_jira_info
这样就可以指定crontab的执行目录了.