Python使用crontab模塊設(shè)置和清除定時(shí)任務(wù)操作詳解
本文實(shí)例講述了Python使用crontab模塊設(shè)置和清除定時(shí)任務(wù)操作。分享給大家供大家參考,具體如下:
centos7下安裝Python的pip
root用戶(hù)使用yum install -y python-pip 時(shí)會(huì)報(bào)如下錯(cuò)誤:
No package python-pip available
Error:Nothing to do
解決方法如下:
首先安裝epel擴(kuò)展源:
yum -y install epel-release
更新完成之后,就可安裝pip:
yum -y install python-pip
安裝完成之后清除cache:
yum clean all
這是在root用戶(hù)時(shí)使用的命令,當(dāng)前用戶(hù)如果不具有root權(quán)限,加上sudo。
在其他Linux類(lèi)似centos衍生的發(fā)行版也可以用此方法解決。
安裝python定時(shí)任務(wù)模塊:
pip install python-crontab
安裝成功:可成功import 該模塊
[root@centos7 mnt]# python Python 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import crontab >>>
封裝一個(gè)類(lèi),用來(lái)新增和清除定時(shí)任務(wù):
# coding=utf-8
from crontab import CronTab
class Crontab_Update(object):
def __init__(self):
# 創(chuàng)建當(dāng)前用戶(hù)的crontab,當(dāng)然也可以創(chuàng)建其他用戶(hù)的,但得有足夠權(quán)限
self.cron = CronTab(user=True)
# self.cron = CronTab(user='website')
def add_crontab_job(self, cmmand_line, time_str, commont_name, user):
# 創(chuàng)建任務(wù)
job = self.cron.new(command=cmmand_line)
# 設(shè)置任務(wù)執(zhí)行周期
job.setall(time_str)
# 給任務(wù)添加一個(gè)標(biāo)識(shí),給任務(wù)設(shè)置comment,這樣就可以根據(jù)comment查詢(xún)
job.set_comment(commont_name)
# 將crontab寫(xiě)入配置文件
# self.cron.write()
self.cron.write_to_user(user=user) # 指定用戶(hù),寫(xiě)入指定用戶(hù)下的crontab任務(wù)
def del_crontab_jobs(self, comment_name, user):
# 根據(jù)comment查詢(xún),當(dāng)時(shí)返回值是一個(gè)生成器對(duì)象,
# 不能直接根據(jù)返回值判斷任務(wù)是否存在,
# 如果只是判斷任務(wù)是否存在,可直接遍歷my_user_cron.crons
# jobs = self.cron.find_comment(commont_name)
# 返回所有的定時(shí)任務(wù),返回的是一個(gè)列表
# a = self.cron.crons
# print 'a = ', a
# print 'len(a) = ', len(a)
# 按comment清除定時(shí)任務(wù)
# self.cron.remove_all(comment=comment_name)
# 按comment清除多個(gè)定時(shí)任務(wù),一次write即可
self.cron.remove_all(comment=comment_name)
self.cron.remove_all(comment=comment_name+ ' =')
# 清除所有定時(shí)任務(wù)
# self.cron.remove_all()
# 寫(xiě)入配置文件
# self.cron.write()
self.cron.write_to_user(user=user) # 指定用戶(hù),刪除指定用戶(hù)下的crontab任務(wù)
if __name__ == "__main__":
print 'start --------'
cmmand_line = "/usr/bin/python /mnt/print_time.py"
time_str = "* * * * *"
commont_name = "Test_Crontab_Job"
user = "xue"
# 創(chuàng)建一個(gè)實(shí)例
crontab_update = Crontab_Update()
# 調(diào)用函數(shù)新增一個(gè)crontab任務(wù)
# print '&&&&&& add_crontab_job '
# crontab_update.add_crontab_job(cmmand_line, time_str, commont_name, user)
print '&&&&&& del_crontab_jobs '
crontab_update.del_crontab_jobs(commont_name, user)
print 'end -------'
定時(shí)任務(wù)執(zhí)行的python腳本如下:print_time.py
# coding=utf-8
import datetime
# datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
with open('/mnt/datetime_log.txt', 'a') as f:
f.write(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")+"\n")
f.close()
設(shè)置定時(shí)任務(wù)后:
下面可通過(guò)命令查看,是否創(chuàng)建成功:
crontab -l
結(jié)果如下:

清除定時(shí)任務(wù)后:

還有一些功能沒(méi)有完全介紹,大家可以參考官方文檔https://pypi.python.org/pypi/python-crontab
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python日期與時(shí)間操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- Python while true實(shí)現(xiàn)爬蟲(chóng)定時(shí)任務(wù)
- jenkins配置python腳本定時(shí)任務(wù)過(guò)程圖解
- 詳解Python3定時(shí)器任務(wù)代碼
- python BlockingScheduler定時(shí)任務(wù)及其他方式的實(shí)現(xiàn)
- Python定時(shí)任務(wù)APScheduler的實(shí)例實(shí)例詳解
- Linux部署python爬蟲(chóng)腳本,并設(shè)置定時(shí)任務(wù)的方法
- Python3實(shí)現(xiàn)定時(shí)任務(wù)的四種方式
- Python實(shí)現(xiàn)定時(shí)執(zhí)行任務(wù)的三種方式簡(jiǎn)單示例
- Python selenium爬蟲(chóng)實(shí)現(xiàn)定時(shí)任務(wù)過(guò)程解析
相關(guān)文章
Python Sleep休眠函數(shù)使用簡(jiǎn)單實(shí)例
這篇文章主要介紹了Python Sleep休眠函數(shù)使用簡(jiǎn)單實(shí)例,本文直接給出兩個(gè)實(shí)現(xiàn)例子,需要的朋友可以參考下2015-02-02
PyTorch中torch.cuda.amp相關(guān)警告的解決方法
在最近的寫(xiě)代碼過(guò)程中,遇到了兩個(gè)與 PyTorch 的混合精度訓(xùn)練相關(guān)的警告信息,torch.cuda.amp.autocast和torch.cuda.amp.GradScaler,文中通過(guò)代碼示例給大家介紹了詳細(xì)的解決方法,需要的朋友可以參考下2025-02-02
Pycharm配置autopep8實(shí)現(xiàn)流程解析
這篇文章主要介紹了Pycharm配置autopep8實(shí)現(xiàn)流程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
python常用庫(kù)之NumPy和sklearn入門(mén)
這篇文章主要介紹了python常用庫(kù)之NumPy和sklearn入門(mén),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python中的scapy抓取http報(bào)文內(nèi)容
這篇文章主要介紹了python中的scapy抓取http報(bào)文內(nèi)容方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
python讀取浮點(diǎn)數(shù)和讀取文本文件示例
這篇文章主要介紹了python讀取浮點(diǎn)數(shù)和讀取文本文件示例,需要的朋友可以參考下2014-05-05
Python+seaborn實(shí)現(xiàn)聯(lián)合分布圖的繪制
聯(lián)合分布(Joint Distribution)圖是一種查看兩個(gè)或兩個(gè)以上變量之間兩兩相互關(guān)系的可視化圖,在數(shù)據(jù)分析操作中經(jīng)常需要用到。本文將通過(guò)seaborn實(shí)現(xiàn)繪制聯(lián)合分布圖,需要的可以參考一下2023-02-02

