计划任务:at和crontab

Posted Mr Wen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计划任务:at和crontab相关的知识,希望对你有一定的参考价值。

一、概述

  作为一名运维人员,你经常需要将某些命令或脚本放入计划任务中去执行。例如,服务器在白天的访问量一般较大,而服务器在承受巨大访问压力的同时对其进行全备份是不合适的,这时候就可以考虑将备份工作放入系统计划任务,这样系统就可以在夜间访问量小的时候自动执行备份任务。

  Linux中提供两种计划任务:(1)一次性at计划任务  (2)可以周期性执行的cron计划任务

二、at一次性计划任务

  使用at制定一次性计划任务前要确保atd服务是开启的,否则计划任务不会被执行,使用systemctl start atd开启服务,并使用systemctl enable atd确保该服务开机启动。

  2.1at命令用法

    -m   当计划任务执行结束后发送邮件给用户

    -l    查看用户计划任务

    -d    删除用户计划任务

    -c    查看at计划任务具体内容

    at命令时间格式:(1)at  小时 :分钟 #默认代表当天时间  (2)at 4pm + 3days  #代表3天后的下午4点执行计划任务  

            (3)at 12:00 2019-12-12  #指定年月日和日期的计划任务

  2.2at案例

  #指定在21:40执行计划任务,既在/目录新建一个test.txt文件并写入数据hello world。可以输入多条命令,输入完毕后按Ctrl+D快捷键保存并退出。

  #执行打包计划任务

  #查看、删除计划任务

 

 三、cron周期性计划任务

   使用cron制订计划任务前需要确保crond服务是开启的,否则计划不会被执行,使用systemctl start crond开启服务,并使用systemctl enable crond确保该服务开启启动。

  3.1crontab命令用法  

    -u  指定计划任务的用户,默认为当前用户
    -l  查看计划任务
    -r  删除计划任务
    -e  编辑计划任务
    -i  使用-r删除计划任务时,要求用户进行确认

    计划任务文件格式:分-时-日-月-星期-命令

             分:00~59  时:00~23  日:1~31    月:1~12   星期:0~7

 

   3.2cron案例

进入cron计划任务文件编辑界面,操作和vim相同。

#给用户Alex制定任务计划:4月19号22点30分执行echo "hello world" > /test/test.txt

#给用户Alex制定任务计划:每个星期5的22点30分执行tar -cvzf log.tar.gz /var/log /test

其实,CentOS系统自定义了很多计划任务脚本,分别存放在/etc下的cron.hourly、cron.daily、cron.weekly等目录中,如果你有脚本需要每天执行,可以直接将脚本存放在cron.daily中,系统会自动帮你每天运行该脚本。

#删除计划任务,如果只是某一条或者几条计划不想执行,也可以在计划任务编辑文本中直接用#注释。

 

以上是关于计划任务:at和crontab的主要内容,如果未能解决你的问题,请参考以下文章

Linux中如何设置 at 一次性任务和 crontab 周期性任务计划

详述Linux计划任务的 at和crontab的命令 以及如何查看crontab日志

2016-10-16 计划任务

Linux计划任务at&batch&crontab

linux-计划任务atcrontab

linux命令:任务计划crontab anacrontab at cron