crontab的用法

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行。

1.cron服务

service crond start    //启动服务
service crond stop     //关闭服务
service crond restart  //重启服务
service crond reload   //重新载入配置
service crond status   //查看服务状态 

2.用法

crontab [-u username] [-l|-e|-r]
选项与参数:
-u  :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;
-e  :编辑 crontab 的工作内容
-l  :查阅 crontab 的工作内容
-r  :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑

省略-u username,则是以当前用户创建定时器

定时器里面的内容
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * username command to be executed

从左到右分别为:分 时 日 月 周 用户名 命令

3.例子

①每分钟都将日期打印到一个日志文件中

crontab -e 然后按下i,进入插入模式,输入下面的内容

*/1 * * * * date >> /tmp/date.log

然后按esc,进入正常模式,然后输入:进入命令模式,输入wq 保存并退出

crontab -l 查看当前用户的计划任务

然后输入tail -f /tmp/date.log动态的查看文件内容

②每两分钟执行一次

*/2 * * * * date >> /tmp/date.log

③每两小时执行一次

错误写法* */2 * * * date >> /tmp/date.log,因为每两小时的任何分钟都执行

正确写法 0 */2 * * * date >> /tmp/date.log 每两小时的零分执行,当然你也可以是每两小时的一分执行

④每天5点和17点执行任务

0 5,17 * * * date >> /tmp/date.log

多个时间点可以用逗号分隔,连续的点可以用中横线-来分隔,如5点到17点,可以写成0 5-17 * * *

⑤每隔30秒执行一次任务

因为计划任务的最小单位为1分钟,没办法通过上述方法来执行30秒的任务,但是可以通过sleep来实现。

* * * * * date >> /tmp/date.log

* * * * * sleep 30; date >> /tmp/date.log

从上面的例子中也可以看出,多个任务可以在一个计时任务中执行,之间用分号分隔就行

⑥每年执行一次任务

@yearly date >> /tmp/date.log

上面的写法等同于 0 0 1 1 * >> /tmp/date.log,会在每年的第一分钟内执行,这个可以发新年的问候

类似的写法还有

@reboot 一重启
@yearly 每年,等同于 “0 0 1 1 *”
@annually (等同于 @yearly) 
@monthly 每月,等同于 “0 0 1 * *”
@weekly 每周, 等同于“0 0 * * 0”
@daily 每日,等同于 “0 0 * * *”
@midnight (等同于 @daily) 
@hourly 每小时,等同于 “0 * * * *”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值