简介:
计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据。
分类:1.一次性调度执行 at 2.循环调度执行
一、一次性调度执行at
语法: at <TIMESPEC>
<TIMESPEC>示例:
Now +5min ---5分钟后
Teatime tomorrow(teatime is 16:00) -- 下午茶时间
Noon +4days ---第四天中午
5pm august 3 2029 --2020年8月3日下午5点
4:00 2019-11-27 --某年某月某日某时
例子:
- 设置一个定时创建用户的任务
[root@localhost ~]# at now +1min
at> useradd uuuu
2.查询任务
[root@localhost ~]# atq
3 Thu Mar 30 09:55:00 2019 a root
3.验证结果
[root@localhost ~]# id uuuu
4.报错
二、循环调度执行cron
1.简介:
cron的概念和crontab是不可分割的
crontab是一个命令,常见于Uninx和Linux的操作系统之中。
用于设置周期性被执行的指令。
该命令从标准输入设备读取指令,并将其存放于“/etc/crontab”文件中。
2.查看进程状态
[root@qianfeng ~]# systemctl status crond.service
[root@qianfeng ~]# ps aux |grep crond
root 550 0.0 0.0 126300 1648 ? Ss 10:05 0:00 /usr/sbin/crond -n
cron程序运行时计划任务执行的根本
3.cron示例:
I:管理方式
(1)创建计划
“crontab -e”---为当前用户编辑工作
(2)查询计划
“crontab -l” --为当前用户列出所有工作
(3)删除计划
“crontab -r” --为当前用户移除所有的工作
II:计划任务存储位置
[root@localhost ~]# ls /var/spool/cron/
III:语法格式Job format
# .---------------- 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
# | | | | |
# * * * * * command
说明: 分 时 日 月 周 --命令或脚本程序
六个部分用空格隔开
示例:
0 * * * * /mysql_back.sh ---每小时的0分执行
*/5 * * * * /mysql_back.sh --每5分钟执行
0 2 1,4,6 * * /mysql_back.sh --每月的1.4.6日的2点整执行
0 2 5-9 * * /mysql_back.sh --*每月5日到9日的两点整执行
* * * * * /mysql_back.sh ---每分钟执行
0 2 * * * /mysql_back.sh ---每天 2点整执行
0 2 14 * * /mysql_back.sh ---每月14号的2点整执行
0 2 14 2 * /mysql_back.sh ---2月14日2点整执行
0 2 * * 5 /mysql_back.sh ---不写月日,仅周生效;每月的周五,两点执行
0 2 2 6 5 /mysql_back.sh --书写月和日,月或日,月日周均生效;6月2日的两点整执行;6月的周五两点整执行