Ubuntu系統,定時執行python腳本。
目的:每分鍾執行一次timer_test.py
timer_test.py 路徑 /home/li/d/pythonwork/test/timer_test.py
1 #coding:utf-8 2 import time 3 t = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) 4 str = '執行時間:' + t + '\n' 5 print str
開始設置定時
1 在桌面上打開終端
2 輸入:sudo crontab -e
然后輸入: */1 * * * * python /home/li/d/pythonwork/test/timer_test.py >> /home/li/d/pythonwork/test/testcrontab.log 2>&1
或者輸入python的絕對路徑: */1 * * * * usr/bin/python2.7 /home/li/d/pythonwork/test/timer_test.py >> /home/li/d/pythonwork/test/testcrontab.log 2>&1
按ctrl o 保存 → 如果有提示直接按enter鍵 →ctrl x 離開
如下

3 輸入:sudo crontab -l 可看到自己編輯好的文件
4 這時去/home/li/d/pythonwork/test/路徑下 可看到testcrontab.log文件,打開如下:

定時設置成功。
----------------------------------------------------------------------------
其他:
testcrontab.log中,后面那個2>&1的意思是把錯誤的輸出也輸出到標准輸出(2表示錯誤,2>表示錯誤輸出,&表示等同於,1表示正確),因此如果運行出錯也會把錯誤輸出到之前定義的log中。
下面稍微解釋下crontab中每行的含義。crontab中的每一行代表一個定期執行的任務,分為6個部分。前5個部分表示何時執行命令,最后一個部分表示執行的命令。每個部分以空格分隔,除了最后一個部分(命令)可以在內部使用空格之外,其他部分都不能使用空格。前5個部分分別代表:分鍾,小時,天,月,星期,每個部分的取值范圍如下:
分鍾 0 - 59
小時 0 - 23
天 1 - 31
月 1 - 12
星期 0 - 6 0表示星期天
除了這些固定值外,還可以配合星號(*),逗號(,),和斜線(/)來表示一些其他的含義:
星號 表示任意值,比如在小時部分填寫 * 代表任意小時(每小時)
逗號 可以允許在一個部分中填寫多個值,比如在分鍾部分填寫 1,3 表示一分鍾或三分鍾
斜線 一般配合 * 使用,代表每隔多長時間,比如在小時部分填寫 */2 代表每隔兩分鍾。所以 */1 和 * 沒有區別
*/2 可以看成是能被2整除的任意值。
* * * * * # 每隔一分鍾執行一次任務 0 * * * * # 每小時的0分執行一次任務,比如6:00,10:00 6,10 * 2 * * # 每個月2號,每小時的6分和10分執行一次任務 */3,*/5 * * * * # 每隔3分鍾或5分鍾執行一次任務,比如10:03,10:05,10:06
0 7 * * * /bin/ls #每天早上7點執行一次 /bin/ls 0 6-12/3 * 12 * /usr/bin/backup #在 12 月內, 每天的早上 6 點到 12 點中,每隔3個小時執行一次 /usr/bin/backup 0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata #周一到周五每天下午 5:00 寄一封信給 alex@domain.name 20 0-23/2 * * * echo "haha" >> /tmp/haha.txt #每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分....向 /tmp/haha.txt 文件中寫入 haha
參考:
