crontab用法

crontab是Linux下的定时任务工具,能够定期执行指定操作,需要在某个时间反复执行的任务,比如备份就需要用到crontab,帮助管理员定时完成备份操作。执行crontab -e命令就能开始编辑定时任务了,第一次执行需要选择编辑器,比如nano、vim等编辑工具,在之后也可以通过select-editor命令重新选择编辑工具。

吐槽:Debian下的默认编辑工具为nano,现在使用起来十分不习惯,在最开始更倾向用nano是因为操作上更符合Windows的习惯,看到各种建议用vim忍着别扭习惯了vim,现在开始不习惯nano了。

crontab的命令参数和日期格式为:

# 命令参数
m h dom mon dow command
  1. m – Minute – 0 through 59
  2. h – Hour – 0 through 23
  3. dom – Day of Month – 0 through 31
  4. mon – Month – 0 through 12
  5. dow – Day of Week – 0 through 7 (0 and 7 are both Sunday)
# 日期格式和合法值
*  *  *  *  *
分 时 日 月  周
分的合法值:1-60
时的和法制:1-12
日的合法值:1-31
月的合法值:1-12
周的合法值:0-7(0和7都为星期天)

还有个特殊字符“*”,用于标识它所在位置的一个周期。可以通过例子来说明,

0 0 * * * 每天零点执行一次
1 5 2 * * 每月二号五点一分执行
1 5 2 5 * 每年五月二号五点一份执行
1 * * * * 每到分钟为1的时候运行一次,即一天运行24次
1 1-5 * * 每天一点到五点的1分执行一次
1 1,4, 8,11 * * 每天1点、四点、八点、十一点的一分执行一次
0 1 1 */2 * 从下个一号开始,每两个月的1点开始执行(这里的单位为必填)

这些例子就已经覆盖了所有的用法,这些用法之间是一起使用的,比如某个时间段每隔多久一次。crontab -u username,能让crontab以username的身份运行指定命令,解决环境变量断问题。比如crontab -u root,就能以root的身份运行,当然以root身份运行最简单的方式是sudo crontab -e,使用root权限可以进行一些系统级命令的操作,比如:

0 0 1 5 * shutdown now

就能在五月一号零点关机。另外有一一点可能会引起困扰,当我们设定每5分钟运行一次的时候,它的第一次运行时间是我们保存的即刻,还是下一个符合规则的时期才会运行,答案是:下一个符合规则的运行时间。

对于初学者,可以去谷歌搜一些在线生成crontab指令的网站,帮助自己测试验证并理解crontab的使用。

发表评论

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