cron 是 linux 下的一个定时执行工具。启动、关闭:

1
2
3
$ service cron start
$ service cron stop
$ service cron restart

设置开机启动,在 rc.local 脚本添加 shell 命令:

1
service cron start

rc.local 文件的位置因为版本问题,可能不一样。/etc/rc.local /etc/rc.d/rc.local

crontab 命令

1
2
3
4
5
6
7
usage:	crontab [-u user] file
crontab [ -u user ] [ -i ] { -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)

比如,删除 lizs 用户的定时任务:

1
2
lizs@lizs-pc:/etc$ crontab -u lizs -i -r
crontab: really delete lizs's crontab? (y/n) n

crontab 添加定时任务

修改默认编辑器:select-editor
首先打开编辑页面 crontab -e,用以下方式添加任务:

1
t1 t2 t3 t4 t5 command

  • t1,分钟(0 - 59)
  • t2,小时(0 - 23)
  • t3,日期(1 - 31)
  • t4,月份(1 - 12)
  • t5,星期(0 - 6, 0 代表星期日)
  • command,要执行的任务,如访问某个网址:curl https://www.baidu.com

除了以上参数之外还有几个特殊符号:

  • *,代表所有取值范围内的数字
  • /,代表每的意思,如*/2表示每 2 个单位
  • -,代表从某个数值到某个数值,如3-10表示从 3 到 10
  • ,,分开几个离散的数字,如 2,23

示例:

1
2
3
4
// 每天晚上 23:30
30 23 * * * curl https://www.baidu.com
// 每天中午 12 点到晚上 11 点,每隔两个小时和早上 8 点
0 12-23/2,8 * * * /home/lizs/app/backup.sh