引言
python-crontab是python模块,提供了对cron任务的访问,并使得我们可以通过python对crontab文件进行修改。
安装
pip install python-crontab
注意:如果在使用CronTab的时候报错,报错信息为 got an unexpected keyword argument \'user\' 可能是库安装错了,应该安装python-crontab而不是crontab。
使用案例
- 增加crontab任务,一般有两种方式
from crontab import CronTab # 方法一 # 创建cron访问 cron = CronTab(user=\'root\') # 增加新作业 job = cron.new(command=\'echo hello_world\') # 每一分钟执行一次 job.minute.every(1) # 写入作业 cron.write() # 方法二 with CronTab(user=\'root\') as cron: job = cron.new(command=\'echo hello_world\') job.minute.every(1) print(\'cron.write() was just executed\')
- 访问crontab可以通过五种方式实现
from crontab import CronTab # 下述三种方法只能在Unix上使用 # 不会从任何用户加载任何内容 empty_cron = CronTab() # 从当前用户加载 my_user_cron = CronTab(user=True) # 从$username加载 users_cron = CronTab(user=\'username\') # 可适用于window # 从文件中加载 file_cron = CronTab(tabfile=\'filename.tab\') # 使用字符串变量作为crontab mem_cron = CronTab(tab=\"\"\"* * * * * command\"\"\")
- 设置作业时间
from crontab import CronTab cron = CronTab(user=True) job = cron.new(command=\'echo hello world\') # 每两分钟运行一次 job.minute.every(2) # Set to */2 * * * * # 每两小时运行一次 job.hour.every(2) # Set to * */2 * * * # 每两天运行一次 job.day.every(2) # Set to * * */2 * * # 每天的早上2点执行 job.hour.on(2) # Set to * 2 * * * # 每周日执行 job.dow.on(\'SUN\') # 每周日、周五执行 job.dow.on(\'SUN\', \'FRI\') # 四月到11月期间执行 job.month.during(\'APR\', \'NOV\') # 每两个月的2号到4号的早上10:02执行 job.setall(2, 10, \'2-4\', \'*/2\', None) # Set to 2 10 2-4 */2 *
- 删除crontab任务
# 删除一个任务 cron.remove(job) # 删除多个任务 cron.remove_all(comment=\'LoveFishO\') cron.remove_all(\'echo\') cron.remove_all()
- 获取修改任务的命令或注释
# 获取任务的命令或注释 command = job.command comment = job.comment # 修改任务的命令或注释 job.set_command(\"echo LoveFishO\") job.set_comment(\"LoveFishO\")
- 写入任务
# 把任务写入系统 cron.write() # 把任务写入文件 cron.write( \'filename.tab\' ) # 把任务写入当前用户的定时任务中 cron.write_to_user(user=True) # 把任务写入特定用户的定时任务中 cron.write_to_user(user=\'LoveFishO\')
Reference
python-crontab官方文档
本文来自博客园,作者:LoveFishO,转载请注明原文链接:https://www.cnblogs.com/lovefisho/p/16252176.html
来源:https://www.cnblogs.com/lovefisho/p/16252176.html
本站部分图文来源于网络,如有侵权请联系删除。