詳解使用python crontab設定linux定時任務,pythoncrontab
熟悉linux的朋友應該知道在linux中可以使用crontab設定定時任務。可以通過命令crontab -e編寫任務。當然也可以直接寫設定檔設定任務。
但是有時候希望通過指令碼自動化佈建,比如我們應用程式部署時等。有需求當然就得想辦法解決,不然在程式猿界混(一群自得其樂的猿)。
下面進入正題,開始想通過以寫檔案的形式設定,通過在設定檔中直接追加一行即可。但是讀寫檔案難免有點繁瑣,再比如:設定任務時要檢查任務是否已經存在;根據輸入參數設定相應的任務等。以讀寫檔案難免不太合適。所以想到了“萬能”的大python。
噹噹當,今天的主角上場:python-crontab模組。安裝直接
$ pip install python-crontab
下面在指令碼上就可以方便的設定計劃任務了
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.cronsiter = my_user_cron.find_comment('time log job')# 同時還支援根據command和執行循環尋找,基本類似,不再列舉# 任務的disable和enable, 預設enablejob.enable(False)job.enable()# 最後將crontab寫入設定檔my_user_cron.write()
下面可通過命令查看,是否建立成功:
$ crontab -l
很方便吧,還有一些功能沒有完全介紹,大家可以參考官方文檔https://pypi.python.org/pypi/python-crontab
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。