各位用户为了找寻关于详解使用python crontab设置linux定时任务的资料费劲了很多周折。这里教程网为您整理了关于详解使用python crontab设置linux定时任务的相关资料,仅供查阅,以下为您介绍关于详解使用python crontab设置linux定时任务的详细内容
熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务。可以通过命令crontab -e编写任务。当然也可以直接写配置文件设置任务。
但是有时候希望通过脚本自动设置,比如我们应用程序部署时等。有需求当然就得想办法解决,不然在程序猿界混(一群自得其乐的猿)。
下面进入正题,开始想通过以写文件的形式设置,通过在配置文件中直接追加一行即可。但是读写文件难免有点繁琐,再比如:设置任务时要检查任务是否已经存在;根据输入参数设置相应的任务等。以读写文件难免不太合适。所以想到了“万能”的大python。
当当当,今天的主角上场:python-crontab模块。安装直接
? 1$ 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53from
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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/art-geek/p/6143228.html