Linux中使用python crontab设置定时任务的方法详解
2016-12-11 23:27
841 查看
熟悉linux系统的朋友应该知道在linux中可以使用crontab设置定时任务。可以通过命令crontab
-e编写任务。当然也可以直接写配置文件设置任务。本文和大家分享的就是使用python crontab设置linux定时任务的相关方法,一起来看看吧。
但是有时候希望通过脚本自动设置,比如我们应用程序部署时等。有需求当然就得想办法解决,不然在程序猿界混(一群自得其乐的猿)。
下面进入正题,开始想通过以写文件的形式设置,通过在配置文件中直接追加一行即可。但是读写文件难免有点繁琐,再比如:设置任务时要检查任务是否已经存在;根据输入参数设置相应的任务等。以读写文件难免不太合适。所以想到了“万能”的大python。
当当当,今天的主角上场:python-crontab模块。安装直接
$ pip install python-crontab
下面在脚本上就可以方便的设置计划任务了
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 -l
来源:博客园
-e编写任务。当然也可以直接写配置文件设置任务。本文和大家分享的就是使用python crontab设置linux定时任务的相关方法,一起来看看吧。
但是有时候希望通过脚本自动设置,比如我们应用程序部署时等。有需求当然就得想办法解决,不然在程序猿界混(一群自得其乐的猿)。
下面进入正题,开始想通过以写文件的形式设置,通过在配置文件中直接追加一行即可。但是读写文件难免有点繁琐,再比如:设置任务时要检查任务是否已经存在;根据输入参数设置相应的任务等。以读写文件难免不太合适。所以想到了“万能”的大python。
当当当,今天的主角上场:python-crontab模块。安装直接
$ pip install python-crontab
下面在脚本上就可以方便的设置计划任务了
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 -l
来源:博客园
相关文章推荐
- 函数的可重入性
- 小白的centos6.5笔记——常用命令
- Linux—vi/vim编辑器
- Linux软件安装与管理之apt-get安装方式
- 树莓派如何定时关机或定时执行任务-Cron
- Linux学习之路(2)-ssh配置和SecureCRT远程连接
- linux中pid,tid, 以及 真实pid的关系
- CentOS6.8下Django项目运行坏境搭建-uwsgi(五)
- Linux下取代top的进程管理工具 htop
- Linux inotify功能及实现原理
- Linux下inotify机制简介
- Centos rescue 模式
- 原来几行代码就能让你的Linux系统崩溃
- win 7安装 linux
- Linux yum 命令
- Linux Script学习笔记1
- CentOS 6 安装KDE 和解决每次打开一个深层次的文件夹,总要打开好多窗口
- Centos 6.5 配置 postfix 及排错
- Centos上安装Python3.4
- 实验一 Linux开发环境的配置 20145213祁玮 20145222黄亚奇