一、简介
1.作用: 计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据。
2.分类:
一次性调度执行 at
循环调度执行 cron
二、一次性调度 at
语法:at + 时间
1.示例:
at now +5min 五分钟之后
at teatime tomorrow (teatime is 16:00) 下午茶时间
at 5pm august 3 2021 2020/8/3 pm5:00
2.定时创建用户任务
[root@localhost ~]# at now +1min
at> useradd u1
at> <EOT>
CTRL+D输入完毕,提交任务
job 1 at Mon Dec 14 19:32:00 2020
[root@localhost ~]# id u1
uid=1249(u1) gid=1249(u1) 组=1249(u1)
3.查询任务
[root@localhost ~]# at now +2min
at> useradd u2
at> <EOT>
at> <EOT>
job 2 at Mon Dec 14 19:40:00 2020
[root@localhost ~]# atq //查询定时任务
2 Mon Dec 14 19:40:00 2020 a root
出现此类报错,把程序拉起
三、循环调度
- cron的概念和crontab(表格)是不可分割的。crontab是一个命令,常见于Unix和Linux的操作系统之中。
- 用于设置周期性被执行的指令。
- 该命令从标准输入设备读取指令,并将其存放于“/etc/crontab”文件中,以供之后读取和执行
示例:
0 * * * * /mysql_back.sh 每小时的0分执行
*/5 * * * * /mysql_back.sh 每五分钟执行
0 2 1,4,6 * * /mysql_back.sh 每月的1,4,6日的2点整执行
0 2 * * 5 /mysql_back.sh 不写月日,仅周生效&每月的周五,两点执行
00 02 1 * * ls 每月1号2:00整
00 02 14 * 7 ls 每月14号2:00整&每周日2:00整&这两个时间都执行
1.crond程序运行是计划任务执行的根本。
[root@localhost ~]# systemctl status crond.service //查看进程状态
2.管理:
创建计划 crontab -e
查询用户级计划 crontab -l
查看系统级计划 cat /etc/crontab
删除计划 crontab -r
3.计划任务存储位置
[root@localhost ~]# ls /var/spool/cron/ --空的说明没有计划
4.语法格式 :分 时 日 月 周 命令或脚本程序
改变时间格式
[root@localhost ~]# touch `date +%F-%H-%M-%S`.txt
[root@localhost ~]# ls
2020-12-14-20-54-20.txt file2
(1)创建脚本文件
[root@localhost ~]# # vim /root/1.sh
/usr/bin/touch /root/`date +%F-%H-%M-%S`.txt //写执行脚本
[root@localhost ~]# cat /root/1.sh
/usr/bin/touch /root/`date +%F-%H-%M-%S`.txt
[root@localhost ~]# ls *.txt
ls: 无法访问*.txt: 没有那个文件或目录
[root@localhost ~]# bash /root/1.sh //运行脚本
[root@localhost ~]# ls *.txt
2020-12-14-21-12-01.txt
(2)添加执行权
[root@localhost ~]# chmod +x /root/1.sh
(3)编写任务计划
[root@localhost ~]# crontab -e
* * * * * * /root/1.sh
(4)查看创建结果
[root@localhost ~]# ls -l /root/