Cron调度任务入门

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

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

cron的概念

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

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

crontab -e

image.png

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

能做什么

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

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

Cron任务格式

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

image.png

参数格式按顺序如下:

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

开始 cron

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

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

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

image.png

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

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

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

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

总结

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


相关文章
|
26天前
|
运维 Ubuntu Linux
定时任务管理详解:cron与at的配置与使用
定时任务管理详解:cron与at的配置与使用
112 2
|
运维 监控 算法
从定时任务-到任务调度系统xxl-job
定时任务的今生前世以及xxl-job调度系统
2501 0
从定时任务-到任务调度系统xxl-job
|
4月前
|
存储 监控 Linux
|
4月前
|
存储 消息中间件 移动开发
还在用crontab? 分布式定时任务了解一下
还在用crontab? 分布式定时任务了解一下
|
4月前
|
监控 Linux 网络安全
在Linux中,什么是cron作业?如何创建一个cron作业?
在Linux中,什么是cron作业?如何创建一个cron作业?
|
4月前
|
监控 安全 Linux
在Linux中,如何设置定时任务(cron job)?
在Linux中,如何设置定时任务(cron job)?
|
4月前
|
Linux 调度
在Linux中,如何使用cron进行任务调度?
在Linux中,如何使用cron进行任务调度?
|
7月前
|
Kubernetes Linux 调度
k8s-高级调度-CronJob 计划任务
k8s-高级调度-CronJob 计划任务
145 0
|
7月前
|
弹性计算 运维 Shell
基于Cron的自动化任务调度
【4月更文挑战第30天】
34 0
|
7月前
|
Linux Shell 调度
linux脚本任务调度
Linux的`crontab`用于计划任务,按照预设时间执行脚本或命令。步骤包括:1) 创建并赋予执行权限的脚本,如`backup.sh`;2) 使用`crontab -e`编辑任务列表;3) 添加cron表达式(如`0 1 * * * /path/to/backup.sh`,表示每天凌晨1点执行脚本);4) 保存并启动/检查cron服务。cron表达式包含分钟、小时、日期、月份和周几字段。根据需求调整表达式以满足不同任务需求。
45 3