在工作中我們經常會寫一個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的執行目錄了.