使用python crontab設置linux定時任務

熟悉linux的朋友應該知道在linux中可使用crontab設置定時任務。能夠經過命令crontab -e編寫任務。固然也能夠直接寫配置文件設置任務。python

可是有時候但願經過腳本自動設置,好比咱們應用程序部署時等。有需求固然就得想辦法解決。linux

下面進入正題,開始想經過以寫文件的形式設置,經過在配置文件中直接追加一行便可。可是讀寫文件不免有點繁瑣,再好比:設置任務時要檢查任務是否已經存在;根據輸入參數設置相應的任務等。以讀寫文件不免不太合適。因此想到了「萬能」的大python。code

噹噹噹,今天的主角上場:python-crontab模塊。安裝直接對象

$ pip install python-crontab

下面在腳本上就能夠方便的設置計劃任務了blog

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()

 下面可經過命令查看,是否建立成功:crontab

$ crontab -l

很方便吧,還有一些功能沒有徹底介紹,你們能夠參考官方文檔https://pypi.python.org/pypi/python-crontabip

 

這裏是老瘦家的兒子,如需轉載請聲明,我替老瘦感謝你。  文檔

相關文章
相關標籤/搜索