熟悉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
这里是老瘦家的儿子,如需转载请声明,我替老瘦感谢你。 文档