linux定时任务cron配置

实现linux定时任务有:cron、anacron、at等,这里主要介绍cron服务。

名词解释

cron: 服务名称
crond: 后台进程
crontab: 定制好的计划任务表

服务安装

要使用cron服务,先要安装vixie-cron软件包和crontabs软件包,两个软件包作用如下:
vixie-cron 软件包是cron的主程序。
crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

# 查看是否安装了cron软件包: 
rpm -qa|grep vixie-cron
# 查看是否安装了crontabs软件包:
rpm -qa|grep crontabs

# 如果本地没有安装包,在能够连网的情况下可以在线安装
yum install vixie-cron
yum install crontabs

配置定时任务

# 任意一个
pgrep crond
/sbin/service crond status
ps -elf|grep crond|grep -v "grep"

查看crond服务是否运行

# 启动服务 
/sbin/service crond start
# 关闭服务
/sbin/service crond stop
# 重启服务  
/sbin/service crond restart
# 重新载入配置
/sbin/service crond reload

配置用户定时任务的语法

crontab [-u user]file
crontab [-u user] [-l| -r | -e][-i]

# 参数说明
crontab -u //设定某个用户的cron服务
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务

crontab任务配置基本格式

Seconds Minutes Hours DayofMonth Month [DayofWeek] command

字段含义

Seconds: 可出现"* / , -"四个字符,有效范围为0-59的整数
Minutes: 可出现"* / , -"四个字符,有效范围为0-59的整数
Hours: 可出现"* / , -"四个字符,有效范围为0-23的整数
DayofMonth: 可出现"* / , - ?"五个字符,有效范围为0-31的整数
Month: 可出现", - * /"四个字符,有效范围为1-12的整数或JAN-DEC
DayofWeek: 可出现"* / , - ?"五个字符,有效范围为0-6的整数或SUN-SAT两个范围。0表示星期天,1表示星期一, 依次类推

* 表示匹配该域的任意值,假如在Minutes域使用*, 即表示每分钟都会触发事件。
? 字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值,当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”。
- 表示范围,例如在Minutes域使用5-20,表示从5分到20分钟每分钟触发一次。
/ 表示起始时间开始触发,然后每隔固定时间触发一次,例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次。
, 表示列出枚举值值。例如:在Minutes域使用5,20,则意味着在5和20分每分钟触发一次。
L:表示last,例如星期中表示7或SAT,月份中表示最后一天31或30,6L表示这个月倒数第6天,FRIL表示这个月的最后一个星期五
W:只能用在月份中,表示最接近指定天的工作日
#:只能用在星期中,表示这个月的第几个周几,例如6#3表示这个月的第3个周五

例子

# 每天晚上1点调用/home/testuser/test.sh
0 1 * * * /home/testuser/test.sh

# 每10钟调用一次/home/testuser/test.sh
*/10 * * * * /home/testuser/test.sh

# 上面的例子表示每晚的21:30重启apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

# 上面的例子表示每月1、10、22日的4 : 45重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

# 上面的例子表示每周六、周日的1 : 10重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

# 上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

# 上面的例子表示每星期六的11 : 00 pm重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

# 每一小时重启apache
* */1 * * * /usr/local/etc/rc.d/lighttpd restart

# 晚上11点到早上7点之间,每隔一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

# 每月的4号与每周一到周三的11点重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

# 一月一号的4点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

# 每半小时同步一下时间
*/30 * * * * /usr/sbin/ntpdate 210.72.145.44

# 每月最后一日的上午10:15触发
0 15 10 L * ? 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

必成公

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值