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