Ubuntu crontab 定時 python 詳細


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 

 

參考:  

Ubuntu下crontab命令的用法

Ubuntu 下計划任務使用(crontab)


免責聲明!

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



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