Linux定时任务详解
crond 定时任务详解
crond 是 Linux 下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,可以在无需人工干预的情况下运行作业。
我的环境是3A服务器搭建centos7.9,延迟低
安装 crond 服务
yum install crond
crond服务启动
systemctl start crond
systemctl enable crond
crond服务详解
Linux系统调度可以分为两类: 系统任务调度 | 用户任务调度
系统任务调度: 系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等
# crond服务在/etc/目录下有一个crontab文件,这个文件就是系统任务调度的配置文件。
# 配置文件内容解析
[root@dev etc]# vim /etc/crontab
SHELL=/bin/bash # 指定shell
PATH=/sbinL:/bin:/usr/sbin:/usr/bin # 指定了系统可执行文件路径
MAILTO=root # 指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务 执行信息给用户。
HOME=/ # 指定执行命令或脚本时使用的主目录
用户任务调度: 用户定期要执行的工作,比如用户数据备份、定时邮件提醒等
# 用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
# 可以通过 crontab 命令添加或者编辑需要定时执行的任务
crontab 命令基本参数
crond 服务提供 crontab 命令用于设置 crond 服务
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
# 特殊字符
* : 代表所有可能的值
, :用逗号隔开的值表示一个范围列表,如 1,2 表示1-2
- :可以在整数中间用中杠表示一个整数范围,如 6-8 , 表示6 7 8
/ : 可以用正斜线表示时间间隔频率,如 /10 用于minute字段,表示每10分钟执行一次。
添加定时任务
任务格式: M(分) H(时) D(日) m(月) d(周) command
M : 表示分钟1~59 , 每分钟用*或者 */1表示
H : 表示小时1~23(0表示0点)
D : 表示日期1~31
m : 表示月份1~12
d : 表示号星期0~6(0表示星期天)
command : 要运行的命令
# 每分钟执行一次 /root/test.sh脚本
/5 * * * /root/test.sh
# 每十分钟执行一次
/10 * * * * echo "1";