使用python crontab设置linux定时任务
熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务。可以通过命令crontab -e编写任务。当然也可以直接写配置文件设置任务。
但是有时候希望通过脚本自动设置,比如我们应用程序部署时等。有需求当然就得想办法解决。
下面进入正题,开始想通过以写文件的形式设置,通过在配置文件中直接追加一行即可。但是读写文件难免有点繁琐,再比如:设置任务时要检查任务是否已经存在;根据输入参数设置相应的任务等。以读写文件难免不太合适。所以想到了“万能”的大python。
当当当,今天的主角上场:python-crontab模块。安装直接
$ 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 | 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
大家如果喜欢,记得关注哦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!