crontab调度任务入门

Cron 是一款类Unix的操作系统下的基于时间的任务管理系统,Cron 用于操作系统(CentOS)周期性执行程序或者脚本。例如有一个程序,想要每天凌晨 2 点执行,或者需要每周备份一次文件,类似这些事情可以通过一个由 cron 执行的脚本来完成。

cron的概念

Cron 是一个守护进程。那么什么是守护进程?daemon 是一个总是在后台运行的程序,用户不能直接访问 daemonCron 每分钟检查 crontabcrontabCron 表的缩写形式)文件,在特定的一分钟内检查某个作业并执行,Crontab包含一些称为 cron 的程序/命令。

crontab 是一个文本文件,执行以下命令可以查看相关信息:

crontab -e

crontab -e

文件可以使用 vim 进行编辑,按照上图的格式新增一行。

能做什么

对于服务器管理人员来说,cron 并不陌生,一般都相当熟悉。下面来看看 cron可以解决什么问题:

  • 疫情数据,如果需要做一个疫情跟踪,就需要每天定时去抓取,这个时候可以安排 cron 任务来每天定时执行
  • 服务器数据定时备份
  • 日志分析报告,定时分析服务器日志生成报告,通过邮件发送
  • 定时清理服务器临时文件或者日志
  • 定期更新任务

Cron任务格式

任务格式如下,前五个参数决定了程序的执行时间。

Cron任务格式

参数格式按顺序如下:

  • 分钟(0~59)
  • 小时(0~23)
  • 天(1~31,但是需要考虑当前月份的天数)
  • 月(1~12)
  • 星期(0-6,0为星期天)

开始 cron

打开终端,输入crontab -e 回车,然后在文件底部添加一行:

*/2   *    *    *    *    echo "hello cron" > ~/hello

如果需要验证规则,可以通过在线平台验证,如图:

Cron定时访问

corn 将每隔 2 分钟执行一次,并在主目录中保存一个名为 hello 的文件,文件内容包含 hello cron

在 WEB 编程中,通常程序不会在后台一直运行,如一个PHP网页,只有有请求的情况下才会执行,如果定时任务的逻辑在 PHP 页面中,则可以通过定时任务访问 URL 的形式来启动。

*/10 *  *  *  *     curl "https://www.devpoint.cn/index.shtml"

上面的任务是每10分钟访问一次,以启动WEB上的任务逻辑。

总结

cron 还是有很多使用场景,备份、下载、抓取、发送邮件等等,可以做一些周期性的任务。

crontabcron