Linux-自动化运维(计划任务)——at和crontab命令

经验丰富的系统运维工程师可以使得Linux在无需人为介入的情况下,在指定的时间段自动启用或停止某些服务或命令,从而实现运维的自动化。

计划任务:

  • 一次性计划任务 at
  • 长期性计划任务(周期性) crontab

1、一次性计划任务

可以理解为布置作业,布置只需完成一次的作业。
at类命令的服务名为atd,可以使用命令systemctl status atd查看atd服务是否启动
执行脚本存放在 /var/spool/at/

  1. 使用相对时间执行命令
    at now +1 min

  2. 使用绝对时间执行命令
    at 12:00

  3. 查看待处理的作业
    at -l

  4. 删除无用的作业
    atrm 1

  5. 根据作业ID查看执行细节
    at -c 1

  6. 作业的时间格式
    at 13:00 2020-02-26 【绝对时间】
    at now +10min/hour/day 【相对时间】
    at 12:00 tomorrow 【明天12点】
    at 6:00 pm + 5 day 【5天后的下午6点】
    at 23:00 < task.txt 【在23点执行】

  7. Ctrl+D 保存并退出当前作业,作业进入待执行状态。

  8. 实例
    在这里插入图片描述

2、周期性计划任务

可以理解为布置周期性的作业,每个周期的固定时间都要完成一次作业
linux内置了cron进程,服务名为crond,而crontab是cron table的简写,是cron进程的配置文件,也叫作业列表。
/var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
/etc/crontab 这个文件负责调度各种管理和维护任务。
/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
我们还可以把脚本放在/etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

扫描二维码关注公众号,回复: 9573155 查看本文章

由于crond服务是系统内置的,我们无需配置,可通过systemctl status crond查看该服务是否启动。

  1. 创建作业
    作业格式:分 时 日 月 周 命令 【每一个作业都必须有这6个部分(时间5+动作1)】
    作业要求:在crond服务的计划任务参数中,所有命令都必须以绝对路径的方式来写。可用whereis 命令查询命令的绝对路径。
    取值范围
    分:0-59
    时:0-23
    日:1-31
    月:1-12
    :0-7【0和7都是星期天】
    书写形式:
    *所有时间
    /n每隔n时间
    -从几到几
    ,单独去一部分时间
    实例:
    * * * * * mywork【每分钟】
    1,3 * * * * mywork【每小时的第1和第3分钟】
    1,3 8-12 * * * mywork【每天的上午8-12点的第1和第3分钟】
    1,3 8-12 */2 * * mywork【每隔两天的上午8-12点的第1和第3分钟】
    1,3 8-12 * * 1 mywork【每周一的上午8-12点的第1和第3分钟】
    * 23-7/1 * * * mywork【每天晚上23点到第二天上午7点,每隔1小时】
    具体实验:
    crontab -e进入vim编辑器,一行表示一个周期性作业,可以布置多个周期性作业。
    在这里插入图片描述
    在这里插入图片描述

  2. 查看作业
    crontab -l
    在这里插入图片描述

  3. 删除某个作业可以使用crontab -e命令进入文本编辑器,将对应的作业去掉。

  4. 清空作业
    crontab -r
    在这里插入图片描述

以上就是linux中利用计划任务实现自动化运维的全部内容了,可以实现一次性和周期性的计划任务。

发布了33 篇原创文章 · 获赞 25 · 访问量 9490

猜你喜欢

转载自blog.csdn.net/weixin_36522099/article/details/104507690