

计划任务
一、计划任务介绍
作为运维人员,经常需要某些脚本、命令在指定的时间段运行、停止。这些操作都可以由系统的计划任务完成的,计划任务又分为“一次性”与“周期性”之分。比如:
- 一次性计划任务:今晚12:30开启网站服务
- 周期性计划任务:每周2、4、6将/http/www目录保存备份为backup.tar.gz
二、at 一次性计划任务
1、at介绍
at在centos系统中默认是安装并且随机启动的。
atd管理:
systemctl status|start|stop|restart atd
2、at语法
| 命令 | 作用 |
|---|---|
| at [选项] 时间 | 在指定的时间执行特定的任务 |
| 作用 | 作用 |
|---|---|
| -l | 列出系统上所有该用户的任务,也可以使用atq |
| -d | 删除一个任务,也可以使用atrm |
| 时间格式 | 含义 |
|---|---|
| HH:MM | 在这个时间点执行任务 |
| HH:MM YYYY-MM-DD | 强制规定在某年某月某日某个时刻执行该任务 |
| HH:MM + n [minutes|hours|days|weeks] | 某个时刻的后的某个时间点执行任务 |
3、案例
# 案例一:再过1分钟后,将任务执行时间写入date.txt 文件
[root@CaiChen ~]# at now + 1minutes
at> date > /root/date.txt
at> <EOT> # 输入[ctrl] + d 就出现<EOF>,代表退出at编辑模式
job 2 at Thu Mar 28 12:27:00 2019 # 表示第二个at工作将在这个时间执行
# 案例二:由于机房预计于2019/10/2停电,我想要在2019/10/1 23:00关机
[root@CaiChen ~]# at 23:00 2019-10-1
at> /bin/sync # 将内存中尚未存入磁盘中的信息存到磁盘中,保证数据不丢失
at> /bin/sync
at> /sbin/shutdown -h now
at> <EOT>
job 5 at Tue Oct 1 23:00:00 2019
# 查看at任务
[root@CaiChen ~]# at -l //也可以使用:atq
4 Thu Mar 28 12:35:00 2019 a root
5 Tue Oct 1 23:00:00 2019 a root
# 删除5号任务
[root@CaiChen ~]# at -d 5 //也可以使用:atrm
三、cron 周期性计划任务
1、cron介绍
cron的服务是crond这个系统服务来控制的,可以用来循环执行任务。在linux系统中也是默认开启并且随机启动的服务。
cron使用crontab指令建立计划任务之后,该工作就会记录到/var/spool/cron/里面去。而且是以账号作为判别的,比如,CaiChen用户使用crontab后,任务会被记录到/var/spool/cron/CaiChen里面去。但是要注意,不要直接使用vim去编辑这个文件,以为可能由于输入语法错误,导致无法执行crontab任务。
我们执行过的任务记录,会被记录到/var/log/cron这个文档中。也就是cron的日志文件。
2、crontab命令
| 命令 | 作用 |
|---|---|
| crontab [选项] | 为每个用户维护周期的计划任务 |
| 选项 | 含义 |
|---|---|
| -u username | 指定用户管理计划任务,只有root才能使用 |
| -e | 编辑crontab任务 |
| -l | 查看crontab任务 |
| -r | 移除所有crontab的任务,若仅移除一项,使用-e去编辑 |
3、crontab语法
使用crontab -e进入编辑cron任务模式,编辑的语法是
案例:用root身份在每天1:00给CaiChen用户发一份邮件
[root@CaiChen html]# crontab -e
0 1 * * * mail -s "send mail 01:00" CaiChen < /root/.bashrc
#分 时 日 月 周 |--------------------指令(做什么)-----------------|
字段说明:
| 代表意义 | 分钟 | 小时 | 日期 | 月份 | 周 | 指令 |
|---|---|---|---|---|---|---|
| 数字范围 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | 要做什么任务 |
特殊字符说明:
| 特殊字符 | 含义 |
|---|---|
| * | 代表任何时刻 |
| , | 代表分割时段 |
| - | 代表时间范围 |
| /n | n表示数字,n单位时间间隔 |
4、案例
案例1: 每周5下午6点右键通知交周报
[root@CaiChen html]# crontab -e
* 18 * * 5 mail haha@CaiChen.cn < /root/zhoubao.txt
案例2:每周2,4,6的凌晨2点30将/root目录打包为rootbackup.tar.gz
[root@CaiChen html]# crontab -e
30 2 * * 2,4,6 /usr/bin/tar -czvf rootbackup.tar.gz /root/
_____ _ _____ _
/ ____| (_) / ____| | |
| | __ _ _ | | | |__ ___ _ __
| | / _` | | | | | | '_ \ / _ \ | '_ \
| |____ | (_| | | | | |____ | | | | | __/ | | | |
\_____| \__,_| |_| \_____| |_| |_| \___| |_| |_|
好了各位,以上就是这篇文章的全部内容了,能看到这里人啊,都是人才。
如果这个文章写得还不错,觉得「王采臣」我有点东西的话 求点赞👍求关注❤️求分享👥 对耿男我来说真的非常有用!!!
白嫖不好,创作不易,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
王采臣 | 文 【原创】 如果本篇博客有任何错误,请批评指教,不胜感激 !微信公众号:
