linux定時執行python腳本的方法以及失敗不執行的處理方法


均益最近寫了個python腳本,需要每天固定個時間執行一次。在shell窗口下執行是沒問題的,但是定時任務的時候老是不執行。如果你也遇到與均益一樣的問題,那么可以看一下下面的內容,你肯定可以找到解決方案的。這是均益花不少時間整理出來的。

首頁,linux定時任務用到的是crontab,我們來看一下crontab如何使用

crontab-1[user]-列出用戶目前的crontab.
crontab-e[user]-編輯用戶目前的crontab.
crontab-d[user]-刪除用戶目前的crontab.

crontab -l 查看定時任務

crontab -e 編輯或者加入新的定時任務

crontab -d 刪除定時任務

crontab定時設置
crontab定時設置

30 21 * * * /usr/local/etc/rc.d/lighttpd restart 
上面的例子表示每晚的21:30重啟apache

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 
上面的例子表示每月1、10、22日的4 : 45重啟apache

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 
上面的例子表示每周六、周日的1 : 10重啟apache

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 
上面的例子表示在每天18 : 00至23 : 00之間每隔30分鍾重啟apache
 
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart 
上面的例子表示每星期六的11 : 00 pm重啟apache

* */1 * * * /usr/local/etc/rc.d/lighttpd restart 
每一小時重啟apache 

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 
晚上11點到早上7點之間,每隔一小時重啟apache 

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 
每月的4號與每周一到周三的11點重啟apache 

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart 
一月一號的4點重啟apache 

其次,需要注意的是

1、腳本路徑最好用絕對路徑,如果腳本里面有文件操作,里面的文件也需要用絕對路徑
2、python腳本文件的第一行,寫明pythoh的路徑,#!/usr/local/bin/python
這個可以通過 which python 這個語句找到
3、文件需要有執行權限,linux的文件執行權限內容可以看這篇文章 http://junyiseo.com/linux/327.html

最后,linux定時執行失敗的處理方法

如果我們的設置好了定時任務,但是卻沒有看到執行,可以通過下面的方法逐一查看
1、查看crontab的狀態,看crontab是否開啟

service crond start  啟動
service crond stop   停止
service crond restart  重啟
service crond reload   重新加載

2、看定時執行日志,是否有執行文件

cat /var/log/cron

3、看文件是否有執行權限,是否使用絕對路徑,這個在上面說過

4、如果上面的都沒有問題,那就是腳本的執行問題,這時候就需要看執行的錯誤日志。這個日志一般在 /var/spool/mail/ 。在這個文件夾里一般有幾個用戶的信息,我們一般是root這個用戶,所以我們看這個root的信息。如果你是其他賬號,可以看其他的用戶的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM