计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据。
#分类
##一次性调度执行 at
Schedule one-time tasks with at.
语法格式:at 时间点
例如:
[root@BJcoud_computing_hp_hao ~]# at now +2min 2分钟之后
[root@BJcoud_computing_hp_hao ~]# at teatime tomorrow 下午茶 16:00
[root@BJcoud_computing_hp_hao ~]# at 5pm august 4 2020 2020年8月4日下午5点
[root@BJcoud_computing_hp_hao ~]# at 13:00 2020-12-12 2020年12月12日 13:00
###我们以at now +2min为例
####设置一个定时创建用户的任务[root@localhost ~]# at now +2min
at> useradd wwww at> CTRL+D (输入完毕,提交任务)
####查询计划 atq
##循环调度执行
cron的概念和crontab是不可分割的。
crontab是一个命令,常见于Unix和Linux的操作系统之中
用于设置周期性被执行的指令。
该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
####查看crond 进程状态
使用命令 systemctl status crond.serice 或者命令ps aux |grep crond
###以下我使用的是ps aux |grep crond这个命令
####切换计划任务存储位置
使用命令 cd /var/spool/cron/
####管理方式
创建计划
crontab -e Edit jobs for the current user
查询计划
crontab -l List the jobs for the current user
管理员可以使用 -u username, 去管理其他用户的计划任务
删除计划
crontab -r Remove all jobs for the current users.
创建计划任务格式 * * * * * command
第一个星号代表分
第二个星号代表时
第三个星号代表日
第四个星号代表月
第五个星号代表周
command 命令
注意:每个星号中间都要有空格
案例如下
*/5 * * * * /mysql_back.sh 每五分钟执行
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 * * * * /mysql_back.sh 每小时的0分执行
0 2 * * * /mysql_back.sh 每天两点整执行
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月的周五两点整执行
以下是我创建的计划任务
输入完后按esc+shift + : 然后输入wq保存退出
查询计划任务
使用命令 crontab -l (管理员可以使用 -u 去管理其他用户的计划任务)
删除计划任务
注意:向我这种的提示有新邮件的是已经有计划执行完了