计划任务
目的
作用: 计划任务主要是做一些周期性的任务,
目前最主要的用途是定期备份数据。
分类
大致上可分两类
一次性调度执行 at
Schedule one-time tasks with at.
循环调度执行 cron
Schedule recurring jobs with cron.
一次性调度执行
at + 时间规格
at now +5min
5分钟后
at noon +4days
四天后的中午
。。。。。
5分钟后建立一个595.txt的文件
按ctrl+d退出编辑
当出现结束后未开始执行任务,因为最小安装默认未开启(安装)at
通过systemctl start atd重启at后可正常使用
查询任务
atq
显示由root用户建立的两个任务
循环调度执行 cron
管理方式
创建计划
crontab -e Edit jobs for the current user
查询计划
“crontab -l” List the jobs for the current user
“crontab -l -u user01”
管理员可以使用 -u username, 去管理其他用户的计划任务
删除计划
crontab -r Remove all jobs for the current users.
计划任务存储位置
路径
[root@localhost ~]# ls /var/spool/cron/
语法格式 Job format
.---------------- minute (0 - 59)代表一个小时中的60分钟
| .------------- hour (0 - 23)代表一天的24小时
| | .---------- day of month (1 - 31)代表一个月的31天
| | | .------- month (1 - 12) 代表一年的12月
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) 代表一周的7天
| | | | |
* * * * * command
每个*号之间用空格隔开
0 * * * * /mysql_back.sh
每小时的0分执行
/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 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月的周五两点整执行
00 02 * * * ls
每天2:00整
00 02 1 * * ls
每月1号2:00整
00 02 14 2 * ls
每年2月14号2:00整
00 02 * * 7 ls
每周日2:00整
00 02 * 6 5 ls
每年6月的周五2:00整 (特殊)
00 02 14 * 7 ls
每月14号2:00整
每周日2:00整
这两个时间都执行
00 02 14 2 7 ls
每年2月14号2:00整
2月每周日2:00整
这两个时间都执行
案例
诉求
每分钟创建一个文件夹
1.先建立脚本文件
#vim /root/1.sh
输入以下内容
/usr/bin/touch /root/date +%F-%H-%M-%S
.txt
文件创建的年月日分
#chmod +x /root/2.sh
并赋予文件目录执行的权限
2.编写任务计划
#crontab -e
输入以下内容
* * * * * /root/2.sh
* 每分钟启动一次2.sh文件
3.查看结果
ll /root