定时任务
代替人自动完成一些任务
定时任务实现的方法
定时任务软件:cronie
定时任务软件:atd --- 设置一次定时任务,执行一次
定时任务软件:anacron --- 定时时间有固定设置 即每小时,每天,每星期,每月
实现定时任务配置
系统默认定时任务:
cron.hourly --- 每小时执行目录中脚本文件
cron.daily --- 每天执行目录中脚本文件
cron.weekly --- 每周执行目录中脚本文件
cron.monthly --- 每月执行目录中脚本文件
用户自定义设置定时任务
crontab --- 设置和查看定时任务命令
crontab -l --- 查看设置的定时任务
crontab -e --- 编辑设置定时任务/语法检查功能
配置文件
/var/spool/cron/root --- root用户设置定时任务配置文件
/var/spool/cron/oldboy --- oldboy用户设置定时任务配置文件
/var/log/cron --- 定时任务日志文件
定时任务启动
systemctl start crond
systemctl enable crond
[root@oldboy63-libo ~]# cat /etc/crontab 定时任务样例文件
SHELL=/bin/bash 环境变量信息
PATH=/sbin:/bin:/usr/sbin:/usr/bin 环境变量信息
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
分 时 日 月 周
分钟: 0-59
小时: 0-23
日期: 1-31
月份: 1-12
星期: 0-6
/n 每隔多久执行定时任务
时间表示形式:
* 每多少时间
*/n 每隔多久 间隔时间
1-10 连续时间范围
1,10 非连续时间范围
测试环境测试定时任务没有问题,执行脚本将线上服务器做改动
compress.sh
#!/bin/bash
tar xxxxx
线下服务器
echo ‘* * * * * * /bin/sh compress.sh’>>/var/spool/cron/root
tail -f /var/log/cron 实时监控定时任务日志信息
Jul 30 16:56:25 oldboyedu crontab[42580]: (root) BEGIN EDIT (root)
Jul 30 16:56:38 oldboyedu crontab[42580]: (root) REPLACE (root)
Jul 30 16:56:38 oldboyedu crontab[42580]: (root) END EDIT (root)
01 02 03 04
1: 编写定时/定时任务触发 时间信息
2: 主机名称信息
3: 读取什么定时任务文件信息
4: 定时任务完成了事情
定时任务编写注意事项:
01. 编写定时任务需要有注释信息 (时间 编写人员 任务作用)
02. 编写定时任务注意环境变量 /usr/bin:/bin 命令书写为绝对路径
03. 编写定时任务注意特殊符号 需要标记转义符号
04. 编写定时任务需要将输出信息定义到空 &>/dev/null
05. 编写定时任务建议使用脚本编写
编写定时任务规范:
命令编写定时任务:
第一个里程: 测试命令是否可以在命令行执行
第二个里程: 放入定时任务中(绝对路径)
第三个里程: 调整时间信息进行测试
第四个里程: 检查日志信息/检查任务执行结果
脚本编写定时任务:
第一个里程:编写脚本信息
第二个里程:测试脚本执行情况
第三个里程:把脚本放入定时任务中(绝对路径)
第四个里程:调整时间信息
第五个里程:检查日志信息,查看任务执行结果
网友评论