介绍
Linux crond 是用来定期执行程序的命令的一个守护进程。与 windows 下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
主要工作
- 系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存。
- 个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。
语法
查看当前用户的定时任务
crontab -l
编辑当前用户的定时任务
crontab -e
删除当前用户的定时任务
crontab -r
Cron文件格式
f1 f2 f3 f4 f5 program
- 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
- 当 f1 为 时表示每分钟都要执行 program,f2 为 时表示每小时都要执行程序,其馀类推
- 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
- 当 f1 为 /n 时表示每 n 分钟个时间间隔执行一次,f2 为 /n 表示每 n 小时个时间间隔执行一次,其馀类推
- 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其馀类推
实例
每月每天每小时的第 10 分钟执行重启apache
10 * * * * service apache restart
每月每天的 21:30 重启apache
30 21 * * * service apache restart
每月 1、10、22 日的 5 : 50 重启apache
50 5 1,10,22 * * service apache restart
每分请求一次demo.com
* * * * * curl demo.com
每 10 分请求一次demo.com
*/10 * * * * curl demo.com
日志位置
*/10 * * * * curl demo.com >> /var/log/demo.com.cron.log 2>&1// 查看tail -f /var/log/demo.com.cron.log
