Linux的任务计划管理
在手机中,我们常常使用备忘录或者是闹钟等来提醒我们该做什么事情了,在linux操作系统中,也有类似的操作。
在linux中除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划好的系统管理任务(如定期备份、定期采集监测数据)。rhel6系统中默认已安装了at、cronie软件
包,通过atd和crond这两个系统服务实现一次性、周期性计划任务的功能,并分别通过at、crontab命令进行计划任务设置。
一、at—一次性计划任务
1、准备
at的适用前提是at程序已经安装并运行atd服务(atd服务是linux下一次性定时计划任务命令的守候进程)
如果没有安装at程序则需要首先安装at程序—— yum install at -y
如果没有运行atd服务则需启动atd服务—— systemctl restart atd;查看是否成功启动atd服务可以用命令 ps aux | grep atd 来抓取atd进程信息,如下图所示即为成功。
2、设置at计划任务
接下来万事俱备,我们便可以调用at程序来设置我们的一次性计划任务了
at的格式是 ——at h:m y-m-d (h/m:小时/分钟 y/m/d:年/月/日)特别注意at的时间格式,若是不加上后面的年月日便自动表示为今天,则为12小时制,上午要在时间后标明am(上午)或pm(下午)。
打出命令后,会弹出可供输入的命令行,在里面输入想要执行的操作后,摁 ctrl + d 保存
设置完可以用—— at -l 或者 atq 来查看已设置的计划
3、删除计划任务
当我们不想要这个计划后,可以输入 atrm i 来进行删除操作(i代表计划任务的编号,每个任务都会在行首 标明编号,可以利用at -l 或atq来查看)。 值得注意的是删除任务后编号不会归零而是继续向下顺位。
4、特殊计划任务的写法
二、crontab定时任务的使用
语法与常用命令
相比于一次性计划任务,crontab可以多次的执行计划,可以在固定的某月某周某天某时某分来执行,也可以设置为每经过多长时间便执行一次
它的语法为—— crontab -u -e
-l:list,列出指定用户的计划任务列表——查看命令
-e:edit,编辑指定用户的计划任务列表
-u:user,指定的用户名,如果不指定,则表示当前用户
-r:remove,删除指定用户的计划任务列表
编写计划任务
在进入 -e 编辑模式后,已行为单位,每一行就是一个计划,需要执行的命令要写成绝对路径的格式,
* 代表取值范围里的每一个数字,拿第一个举例子,如果第一位是 * 则代表每一分钟都会执行一次该命令
- 代表取值范围,例如 在 10点到12点之间就可以在第二个 * 设置为 10-12 即可
/ 代表每多少个,例如想要每10分钟执行一次,可在分的位置设置 */10
, 代表多个数值,例如想在1,2,6点执行,便可在时的位置设置为 1,2,6
删除任务计划
我们想要删除刚刚编写的计划,用——crontab -r就可以进行全部删除注意这个命令是全部删除,但是有时候我们创建了多条计划想进行批量删除可以进入编辑模式,然后在不想要的计划前面加上#(其实就是把这一行注释掉啦)