linux下定时任务–crontab的使用

1.介绍

使用crontab –help,可以看到下面的选项

usage:  crontab [-u user] file
        crontab [-u user] [ -e | -l | -r ]
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
        -i      (prompt before deleting user's crontab)
        -s      (selinux context)

配置文件位于/var/spool/cron/crontabs/<username>,记得备份配置文件,配置丢失可以找回。但是更建议使用crontab -e命令直接编辑。

2.crontab 设置和规则

2.1 /etc/crontab 里可以配置以下变量:
  • 1.SHELL 指明系统要使用哪个shell,例如bash
  • 2.PATH 指定了系统执行命令的路径
  • 3.MAILTO 可以设置crond任务信息通过邮件发送
  • 4.HOME 指定了在执行命令或者脚本时使用的主目录。
2.2时间规则设置

* * * * * 分别代表了分钟/小时/每月的天/月份/周几

 

我的理解 crontab 时间规则大体分为三种:时间点,时间段,频率

2.2.1 时间点:比如几点执行,几分执行,可以单用数字表示

eg.我要在每天12点45分执行打包动作

45 12 * * * zip -r test.zip test/

或者每小时的第10分钟,20分钟,40分钟的时候执行打包任务

10,20,40 * * * * zip -r test.zip test/

2.2.2 时间段:比如几点到几点执行什么动作,可以用-来表示

eg.我要在上午8到12点的整点时刻进行打包

0 8-12 * * * zip -r test.zip test/

2.2.3 频率,比如隔几个小时执行什么动作,可以用/来表示

eg.我要每隔2个小时打包一次

* */2 * * * zip -r test.zip test/

2.2.4还可以时间段和频率进行组合,某时间段内每多长时间执行一次。

eg.我要在上午6点到12点,每隔一小时打包一次

* 6-12/1 * * * zip -r test.zip test/

或者我要在上午6点到12点,每隔十分钟打包一次

*/10 6-12 * * * zip -r test.zip test/

后面 的天、月份、周都可以这么用,在这儿抛砖引玉了。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注