Linux 计划任务

计划任务主要是作一些周期性的任务,目前最主要的用途是按期备份数据。mysql

分类web

一次性调度执行 atsql

Schedule one-time tasks with at.
语法格式:at now +5min(5分钟后)
at noon +4 days(第四天中午)
at 4:00 2019-11-27 (某年某月某时)
举例svg

1.设置一个定时建立用户的任务
	[root@localhost ~]# at  now   +1min
	at> useradd uuuu 
	at> <EOT>
		CTRL+D输入完毕,提交任务
	job 1 at Sat Mar 21 22:34:00 2019
2.查询任务
	[root@localhost ~]# atq
	3 Thu Mar 30 09:55:00 2019 a root
3.验证结果
	[root@localhost ~]# id uuuu
	查出用户信息便可

循环调度执行 cron操作系统

简介
cron的概念和crontab是不可分割的。
crontab是一个命令,常见于Unix和Linux的操做系统之中
用于设置周期性被执行的指令。
该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供以后读取和执行。
查看进程状态
[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
crond程序运行是计划任务执行的根本
cron示例
计划任务存储位置 [root@localhost ~]# ls /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.code

**语法格式 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

五颗星
第一个星号表明分
第二个星号表明时
第三个星号表明日
第四个星号表明月
第五个星号表明周
command 命令
六个部分用空格隔开
orm

示例1
*/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月的周五两点整执行xml