计划任务
一次调度执行at
^作用:计划任务主要是做些周期性的任务,目前最主要的用途是定期备份数据。
安装
# yum install -y at
# systemctl start atd //启动
# systemctl enable atd //开机自启
语法格式
at <TIMESPEC>
now +5min 时间部分
teatime tomorrow (teatime is 16:00) 5分钟后
noon +4 days 下午茶时间 第四天中午
5pm august 3 2018 2018年8月3日下午5点
at命令格式
at HH:MM YYYY-MM-DD //HH(小时):MM(分钟)YYYY(年)-MM(月份)-DD(日)
例:at 4:00 2018-8-2
举个栗子
例1
# vim at.jobs
touch / `date +%F`
# at now +1min <at.jobs
例2
# at now +1min
at> useradd uuuu
at> <EOT> //CTRL+D提交任务
job 1 at Sat Mar 21 22:34:00 2015
# atq
3 Thu Mar 30 09:55:00 2017 a root
稍等片刻。1分钟后。
# id uuuu
查看
# at -l //查看计划任务
# at -r //删除计划任务
附注:时间
# echo `date +%F-%H:%M:%S`
2018-08-02-21:44:10
# date +%F-%X
2018-08-02-21时44分10秒
循环调度执行 cron
简介
crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。
该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。而crond正是它的守护进程
查看进程状态
# systemctl status crond.service
用户级
计划任务储存位置
# ls /var/spool/cron
管理方式
创建计划
# crontab -e
查询计划
# crontab -l
# 管理员可以用 -u ,管理其他用户的计划任务
删除计划
# crontab r
语法格式
# .---------------- 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
分时日月周
举个栗子
测试crontab的时间格式案例
1 编写执行脚本.
vim /crontab.sh
touch /root/`date +%F-%X`.txt
2 编排任务计划
[root@localhost ~]# crontab -e
* * 1 1 * bash /crontab.sh
3 修改日期时间为1月2日3点4分
date 01020304
修改时间为1点2分3秒
date -s 01:02:03
4 监控当前目录
watch -n 0.5 'ls /root/*.txt'
5 测试目标
* * * * 1 每周1 每分钟会执行
* * * 1 * 1月每日 每分钟会执行
* * * 1 1 1月的周1 每分钟会执行
* * 1 * * 每月1日 每分钟会执行
* * 1 * 1 每月1日和每月周1 每分钟会执行
* * 1 1 * 1月1日 每分钟会执行
* * 1 1 1 1月1日和1月的周1 每分钟都会执行