crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。
而 linux 任务调度的工作主要分为以下两类:
系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
语法
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
参数说明
-e 执行编辑器设定时程表,默认vi打开
-r 删除目前的时程表
-l 列出目前的时程表
时间格式
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
常用cron示例
# 每小时的第30分钟执行 ls 命令
30 * * * * ls
# 每10分钟执行 ls 命令
*/10 * * * * ls
# 每天的 14:30 执行 ls 命令
30 14 * * * ls
# 每小时执行 ls 命令
0 * * * * ls
# 每天执行 ls 命令
0 0 * * * ls
# 每周执行 ls 命令
0 0 * * 0 ls
# 每年执行 ls 命令
0 0 1 1 * ls
# 每月 22号 的 6:22 执行 ls 命令
22 6 22 * * ls
# 每年的 6月22号 6:30 执行 ls 命令
30 6 22 6 * ls
# 每星期日的 6:30 执行 ls 命令
30 6 * * 0 ls
# 注意:0和7均可表示星期天, 1 表示星期一,以此类推;也可以用英文来表示,sun 表示星期天,mon 表示星期一等。
# 每月 10号和20号 的 4:30 执行 ls 命令
30 4 10,20 * * ls
# 注意:" , " 用来连接多个不连续的时间
# 每天 8~11点 的第 25 分钟执行 ls 命令
25 8-11 * * * ls
# 注意:" - " 用来连接连续的时间
# 每个月中每隔 10天 的 5:30 执行 ls 命令
30 5 */10 * * ls
# 即:每月的 1、11、21、31日 在 5:30 执行一次 ls 命令
# 每天 4:30 以 root 身份执行 /etc/cron.daily 目录中的所有可执行文件
30 4 * * * root run-parts /etc/cron.daily
评论区