天天看点

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脚本