詳解使用python crontab設(shè)置linux定時(shí)任務(wù)
熟悉linux的朋友應(yīng)該知道在linux中可以使用crontab設(shè)置定時(shí)任務(wù)??梢酝ㄟ^命令crontab -e編寫任務(wù)。當(dāng)然也可以直接寫配置文件設(shè)置任務(wù)。
但是有時(shí)候希望通過腳本自動設(shè)置,比如我們應(yīng)用程序部署時(shí)等。有需求當(dāng)然就得想辦法解決,不然在程序猿界混(一群自得其樂的猿)。
下面進(jìn)入正題,開始想通過以寫文件的形式設(shè)置,通過在配置文件中直接追加一行即可。但是讀寫文件難免有點(diǎn)繁瑣,再比如:設(shè)置任務(wù)時(shí)要檢查任務(wù)是否已經(jīng)存在;根據(jù)輸入?yún)?shù)設(shè)置相應(yīng)的任務(wù)等。以讀寫文件難免不太合適。所以想到了“萬能”的大python。
當(dāng)當(dāng)當(dāng),今天的主角上場:python-crontab模塊。安裝直接
$ pip install python-crontab
下面在腳本上就可以方便的設(shè)置計(jì)劃任務(wù)了
from crontab import CronTab # 創(chuàng)建當(dāng)前用戶的crontab,當(dāng)然也可以創(chuàng)建其他用戶的,但得有足夠權(quán)限 my_user_cron = CronTab(user=True) # 創(chuàng)建任務(wù) job = my_user_cron.new(command='echo date >> ~/time.log') # 設(shè)置任務(wù)執(zhí)行周期,每兩分鐘執(zhí)行一次 job.setall('*/2 * * * *') # 當(dāng)然還支持其他更人性化的設(shè)置方式,簡單列舉一些 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)) # 同時(shí)可以給任務(wù)設(shè)置comment,這樣就可以根據(jù)comment查詢,很方便 job.set_comment("time log job") # 根據(jù)comment查詢,當(dāng)時(shí)返回值是一個(gè)生成器對象,不能直接根據(jù)返回值判斷任務(wù)是否#存在,如果只是判斷任務(wù)是否存在,可直接遍歷my_user_cron.crons iter = my_user_cron.find_comment('time log job') # 同時(shí)還支持根據(jù)command和執(zhí)行周期查找,基本類似,不再列舉 # 任務(wù)的disable和enable, 默認(rèn)enable job.enable(False) job.enable() # 最后將crontab寫入配置文件 my_user_cron.write()
下面可通過命令查看,是否創(chuàng)建成功:
$ crontab -l
很方便吧,還有一些功能沒有完全介紹,大家可以參考官方文檔https://pypi.python.org/pypi/python-crontab
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python實(shí)現(xiàn)定時(shí)任務(wù)
- Python3實(shí)現(xiàn)定時(shí)任務(wù)的四種方式
- python BlockingScheduler定時(shí)任務(wù)及其他方式的實(shí)現(xiàn)
- python 實(shí)現(xiàn)定時(shí)任務(wù)的四種方式
- Linux下Python腳本自啟動與定時(shí)任務(wù)詳解
- Python3.6 Schedule模塊定時(shí)任務(wù)(實(shí)例講解)
- 對Python定時(shí)任務(wù)的啟動和停止方法詳解
- Python中定時(shí)任務(wù)框架APScheduler的快速入門指南
- python Celery定時(shí)任務(wù)的示例
- Python中實(shí)現(xiàn)定時(shí)任務(wù)詳解
相關(guān)文章
python?pip特殊用法之pip?install?-v?-e?.命令詳解
這篇文章主要給大家介紹了關(guān)于python?pip特殊用法之pip?install?-v?-e?.命令的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-09-09Python?jieba庫文本處理詞性標(biāo)注和關(guān)鍵詞提取進(jìn)行文本情感分析
這篇文章主要為大家介紹了Python使用中文文本處理利器jieba庫中的詞性標(biāo)注和關(guān)鍵詞提取功能進(jìn)行文本情感分析實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12在ironpython中利用裝飾器執(zhí)行SQL操作的例子
這篇文章主要介紹了在ironpython中利用裝飾器執(zhí)行SQL操作的例子,文章中以操作MySQL為例,需要的朋友可以參考下2015-05-05使用Python實(shí)現(xiàn)Mysql數(shù)據(jù)庫相關(guān)操作詳解
這篇文章主要介紹了使用Python實(shí)現(xiàn)Mysql數(shù)據(jù)庫相關(guān)操作詳解,pymysql是Python中操作數(shù)據(jù)庫的第三方模塊,通過這個(gè)模塊的相關(guān)方法,我們可以連接并且去操作mysql數(shù)據(jù)庫,需要的朋友可以參考下2023-08-08一行python實(shí)現(xiàn)樹形結(jié)構(gòu)的方法
今天小編就為大家分享一篇一行python實(shí)現(xiàn)樹形結(jié)構(gòu)的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08