第十章 计划任务
当我们将来在企业里需要对一个服务器进行运维时,我们需要设定一些任务,这个任务可以自动执行,这就需要我们进行设置任务计划,可以让服务器在将来的某个时间点自动执行。
一、一次性调度执行
1.一次性调度执行命令:at
命令语法:at <时间空间>
时间空间的示例:
now +5min:现在的时间+5分钟 后执行任务
teatime tomorrow (teatime is 16:00) :定时执行任务
noon +4days:中午12点+4天执行任务
4:00 2019-11-27 :在将来的2019年11月27日4点钟执行任务
例:[root@localhost ~]# at now +3min //从现在起3分钟后执行下面的任务
at> ls //任务计划为查看当前目录
at> <EOT> //这里是退出的意思
这里的at> 是可以一直添加任务的,当我们继续回车可以继续输入命令,当我们按“Ctrl+D”键时则退出 at> 的编辑。
[root@localhost ~]# atq //查询任务
1 Wed Feb 26 22:41:00 2020 a root //这里显示root用户有一个at任务
二、循环调度执行
cron的概念和crontable是不可分割的,crontable全名为循环任务表。crontable是一个命令,用于设置周期性被执行的指令。该调度执行设置好以后也会被存在“cronatab”文件中,这样一来方便今后的修改和执行。
1. 循环调度执行的命令:cron
我们要先查看crond这个程序有没有开启和运行,确定开启运行了才能使用。
[root@localhost ~]# ps aux | grep crond //查看进程信息
root 1383 0.0 0.0 126292 1688 ? Ss 22:36 0:00 /usr/sbin/crond -n
root 3174 0.0 0.0 112732 968 pts/0 S+ 23:01 0:00 grep --color=auto crond
//上面显示了进程状态是Ss,说明他在后台运行。
我们查看进程的信息也可以确定进程是否运行,可以用以下方法:
[root@localhost ~]# systemctl status crond.service //查看进程状态
Active: active (running) since 三 2020-02-26 22:36:19 CST; 31min ago
//这里会显示很多行,我们只需要看重要的一行就是上面的这一行显示的是(running)就说明crond服务正常运行,crond程序可以被正常使用。当他显示没启动时,我们需要用systemctl start crond来启动它,然后再使用。
计划任务存储的位置。
计划任务存储的位置:
当我们设置好了循环调度任务时,可以在/var/spool/cron目录下查看我们设置的循环调度执行任务计划。可以用ls /var/spool/cron查看。
管理方式:
(1)创建计划:执行命令crontab -e创建然后进入一个像vim记事本的界面
我们进入以后可以编写循环调度的任务。
进入以后的标准语法:* * * * * command
第一个*:代表分钟; 第二个*:代表时; 第三个*:代表日
第四个*:代表月; 第五个*:代表周; command:代表你想要执行的循环计划 ,命令或者脚本程序
注意:前面的5个 * 在写的时候一定要注意每一个都要写,5个*一个都不能少,而且每一个 * 之间都要有空格隔开,否则系统识别不出来。当我们编辑完以后都要“:wq” 保存退出。
例:*/5 * * * * ls /tmp //意为每隔5分钟就执行一次命令ls /tmp
例:[root@localhost ~]# crontab -e //创建循环调度任务
5 * * * * /usr/bin/ls /tmp //我们在这里最好写上绝对路径下查看
~
:wq //保存退出
no crontab for root - using an empty one //退出后显示如下两行信息
crontab: installing new crontab
[root@localhost ~]# crontab -l //查看创建好的循环调度任务执行
5 * * * * ls /tmp
例:0 2 1,4,6 * * /usr/bin/ls /tmp
//这里的1,4,6意为每月的1号,4号,6号三天的两点整执行该任务
今天又是努力学习的一天,在这里鼓励自己越努力越幸运。