Cron 调度任务入门
Cron
是一款类 Unix 的操作系统下的基于时间的任务管理系统,Cron
用于操作系统(CentOS)周期性执行程序或者脚本。例如有一个程序,想要每天凌晨 2 点执行,或者需要每周备份一次文件,类似这些事情可以通过一个由 cron
执行的脚本来完成。
cron 的概念
Cron
是一个守护进程。那么什么是守护进程?daemon
是一个总是在后台运行的程序,用户不能直接访问 daemon
。Cron
每分钟检查 crontab
(crontab
是Cron
表的缩写形式)文件,在特定的一分钟内检查某个作业并执行,Crontab
包含一些称为 cron
的程序/命令。
crontab
是一个文本文件,执行以下命令可以查看相关信息:
文件可以使用 vim 进行编辑,按照上图的格式新增一行。
能做什么
对于服务器管理人员来说,cron
并不陌生,一般都相当熟悉。下面来看看 cron
可以解决什么问题:
疫情数据,如果需要做一个疫情跟踪,就需要每天定时去抓取,这个时候可以安排
cron
任务来每天定时执行服务器数据定时备份
日志分析报告,定时分析服务器日志生成报告,通过邮件发送
定时清理服务器临时文件或者日志
定期更新任务
Cron 任务格式
任务格式如下,前五个参数决定了程序的执行时间。
参数格式按顺序如下:
分钟(0~59)
小时(0~23)
天(1~31,但是需要考虑当前月份的天数)
月(1~12)
星期(0-6,0 为星期天)
开始 cron
打开终端,输入 crontab -e
回车,然后在文件底部添加一行:
如果需要验证规则,可以通过在线平台验证,如图:
corn
将每隔 2 分钟执行一次,并在主目录中保存一个名为 hello
的文件,文件内容包含 hello cron
。
在 WEB 编程中,通常程序不会在后台一直运行,如一个 PHP 网页,只有有请求的情况下才会执行,如果定时任务的逻辑在 PHP 页面中,则可以通过定时任务访问 URL 的形式来启动。
上面的任务是每 10 分钟访问一次,以启动 WEB 上的任务逻辑。
总结
cron
还是有很多使用场景,备份、下载、抓取、发送邮件等等,可以做一些周期性的任务。
版权声明: 本文为 InfoQ 作者【devpoint】的原创文章。
原文链接:【http://xie.infoq.cn/article/09bdf0a188f1649b8a6e8b1f8】。文章转载请联系作者。
评论