任务计划 crontab 的使用

crontab 是 linux 下的任务计划,经常会用到的。

用户个人的计划任务:
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)

-u 指定用户,默认是当前用户。
-e 编辑,ubuntu 默认的是使用nano
-l 列出时间表
-r 删除全部

用 crontab -e 打开可以看见下面的说明
# m h  dom mon dow   command
m:分钟,0-59,每分钟可以用 * 或 */1 表示,每5分钟用 */5 表示
h:小时,0-23
dom:日期,1-31

mon:月份,1-12
dow:星期,0-7,其中0、7都是代表星期天
command:需要执行的命令

例子:
*/30 * * * * invoke-rc.d apache2 restart
每 30 分钟重启 apache2

30 * * * * invoke-rc.d apache2 restart
每小时的 30 分钟(间隔1小时)重启 apache2

30 1-3 * * * invoke-rc.d apache2 restart
每日 1:00-3:00 之间的 30 分钟(即1:30、2:30、3:30)重启 apache2

*/30 1-3 * * * invoke-rc.d apache2 restart
每日 1:00-3:00 之间每隔 30 分钟重启 apache2

30 3 * * * invoke-rc.d apache2 restart
每日 3:30 重启 apache2

30 3 1,5,9 * * invoke-rc.d apache2 restart
每月1、5、9日 3:30 重启 apache2

30 3 1,5,9 1 * invoke-rc.d apache2 restart
每年1月1、5、9日 3:30 重启 apache2

30 3 * * 0,6 invoke-rc.d apache2 restart
每星期六、日 3:30 重启 apache2

编辑好后它保存在 /var/spool/cron/crontabs ,用户名和保存的文件名是对应。

编辑完后需要重启 cron 服务才生效。

系统的计划任务:
直接编辑 /etc/crontab 就可以了。

# m h dom mon dow user  command
可以看到这里多个了 user ,它是要指定用户的。
例子:
*/10 * * * * root /root/connvpn
每 10 分钟以 root 身份执行 /root/connvpn 这个脚本。

在 /etc/crontab 里面会有 anacron 的任务,这个是执行在设定时间内没有执行的工作,如发生意外关机没有执行到的任务。

 

附:鸟哥的例行性命令的建立:
http://linux.vbird.org/linux_basic/0430cron.php

发表评论

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据