詳解使用python crontab設置linux定時任務
阿新 • • 發佈:2018-08-16
sta 文件的 set ber iter 其他 install 進入 day
?
熟悉linux的朋友應該知道在linux中可以使用crontab設置定時任務。可以通過命令crontab -e編寫任務。當然也可以直接寫配置文件設置任務。
但是有時候希望通過腳本自動設置,比如我們應用程序部署時等。有需求當然就得想辦法解決,不然在程序猿界混(一群自得其樂的猿)。
下面進入正題,開始想通過以寫文件的形式設置,通過在配置文件中直接追加一行即可。但是讀寫文件難免有點繁瑣,再比如:設置任務時要檢查任務是否已經存在;根據輸入參數設置相應的任務等。以讀寫文件難免不太合適。所以想到了“萬能”的大python。
當當當,今天的主角上場:python-crontab模塊。安裝直接
1 |
$ pip install python - crontab
|
下面在腳本上就可以方便的設置計劃任務了
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
from crontab import CronTab
# 創建當前用戶的crontab,當然也可以創建其他用戶的,但得有足夠權限
my_user_cron = CronTab(user = True )
# 創建任務
job = my_user_cron.new(command = ‘echo date >> ~/time.log‘ )
# 設置任務執行周期,每兩分鐘執行一次
job.setall( ‘*/2 * * * *‘ )
# 當然還支持其他更人性化的設置方式,簡單列舉一些
job.minute.during( 5 , 50 ).every( 5 )
job.hour.every( 4 )
job.day.on( 4 , 5 , 6 )
job.dow.on( ‘SUN‘ )
job.dow.on( ‘SUN‘ , ‘FRI‘ )
job.month.during( ‘APR‘ , ‘NOV‘ )
job.setall(time( 10 , 2 ))
job.setall(date( 2000 , 4 , 2 ))
job.setall(datetime( 2000 , 4 , 2 , 10 , 2 ))
# 同時可以給任務設置comment,這樣就可以根據comment查詢,很方便
job.set_comment( "time log job" )
# 根據comment查詢,當時返回值是一個生成器對象,不能直接根據返回值判斷任務是否#存在,如果只是判斷任務是否存在,可直接遍歷my_user_cron.crons
iter = my_user_cron.find_comment( ‘time log job‘ )
# 同時還支持根據command和執行周期查找,基本類似,不再列舉
# 任務的disable和enable, 默認enable
job.enable( False )
job.enable()
# 最後將crontab寫入配置文件
my_user_cron.write()
|
下面可通過命令查看,是否創建成功:
?1 |
$ crontab - l
|
很方便吧,還有一些功能沒有完全介紹,大家可以參考官方文檔https://pypi.python.org/pypi/python-crontab
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
詳解使用python crontab設置linux定時任務