介绍

Linux crond 是用来定期执行程序的命令的一个守护进程。与 windows 下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

主要工作

  • 系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存。
  • 个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。

语法

查看当前用户的定时任务

  1. crontab -l

编辑当前用户的定时任务

  1. crontab -e

删除当前用户的定时任务

  1. crontab -r

Cron文件格式

  1. 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

  1. 10 * * * * service apache restart

每月每天的 21:30 重启apache

  1. 30 21 * * * service apache restart

每月 1、10、22 日的 5 : 50 重启apache

  1. 50 5 1,10,22 * * service apache restart

每分请求一次demo.com

  1. * * * * * curl demo.com

每 10 分请求一次demo.com

  1. */10 * * * * curl demo.com

日志位置

  1. */10 * * * * curl demo.com >> /var/log/demo.com.cron.log 2>&1
  2. // 查看
  3. tail -f /var/log/demo.com.cron.log