linux-任务计划at,cron

Posted

tags:

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

任务计划


1、在未来的某个时间点执行一次任务

    at

    batch


    at 时间

    at>command

    at>ctrl+d


    指定时间

        绝对时间: HH:MM DD.MM.YY  MM/DD/YY

        相对时间: now+#

            单位:mininus,hours,days,weeks

        命令的执行结果:将以邮件的形式发送给安排任务的用户


[[email protected] ~]# at now+3minutes
at> ls /var
at> cat /etc/fstab<EOT>
job 1 at 2017-03-21 07:30
[[email protected] ~]# date
Tue Mar 21 07:28:24 PDT 2017
[[email protected] ~]# at now+10minutes
at> cat /etc/issue
at> <EOT>
job 2 at 2017-03-21 07:38

[[email protected] ~]# at -l
2 2017-03-21 07:38 a root   (a为队列名称,默认为a)
1 2017-03-21 07:30 a root
[[email protected] ~]#


删除任务:at -d job_id =atrm job_id

[[email protected] ~]# at now+3minutes
at> ls /etc/fstab
at> <EOT>
job 3 at 2017-03-21 07:51
[[email protected] ~]# at -l
3 2017-03-21 07:51 a root
[[email protected] ~]# at -d 3
[[email protected] ~]# at -l
[[email protected] ~]#


黑名单:/etc/at.deny

白名单:/etc/at.allow (at.allow优先级高与at.deny)


2、周期性地执行某个任务;不需要指定时间

    cron为一个不间断运行的服务

    anacron:cron补充,可以实现让cron因为各种原因在过去的时间执行而未执行的任务,恢复正常后执行一次


    系统cron任务

        /etc/crontab        


[[email protected] ~]# ls /etc/crontab
/etc/crontab
[[email protected] ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly  (run-parts为脚本)
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

10,40 * * * * root run-parts /etc/cron.halfhourly

10,40 * * * 3,6 root run-parts /etc/cron.halfweekly

10,40 * * * 1-5 root run-parts /etc/cron.workdayly

(分钟 小时 天 月 周 用户 任务 )



分钟:0-59    小时:0-23    天:1-31    月:1-12    周:0-7

    时间通配符:

    *:对应所有的有效取值

    ,:离散时间点

    -:连续时间点

    /:对应取值范围内没多久    

    /#:对应取值范围内多久一次

        */3 * * * *  任务每3分钟一次


    执行结果将以邮件形式发送给管理员

    */3 * * * * cat /etc/fstab > /dev/null  接收错误结果 

    */3 * * * * cat /etc/fstab &> /dev/null  不接收任何结果    


    注意:cron的环境变量,执行的所有命令在PATH环境变量指定的路径下;

    PATH=/bin:/sbin:/usr/bin:/usr/sbin

    如果用户没有登陆,将没有PATH,使用绝对路径/bin/cat或者优先定义PATH环境变量


[[email protected] ~]# ls /etc/cron.daily/ 
0anacron  0logwatch  cups  logrotate  makewhatis.cron  mlocate.cron  prelink  rhsmd  rpm  tmpwatch

(0优先运行)



    用户cron任务

        /var/spool/cron/USERNAME

    (分钟 小时 天 月 周 任务 )

    用户任务的管理

        crontab -l 列出当前用户的cron任务

        crontab -e 编辑及校验语法错误

        crontab -r 移除所有cron任务

        crontab -u username:管理其他用户的cron任务


[[email protected] ~]# crontab -l
*/3 * * * * /bin/echo "how are you ?"
[[email protected] ~]# crontab -e
crontab: no changes made to crontab
[[email protected] ~]# crontab -e
crontab: no changes made to crontab
[[email protected] ~]# ls /var/spool/cron/root
/var/spool/cron/root
You have new mail in /var/spool/mail/root
[[email protected] ~]# cat /var/spool/cron/root
*/3 * * * * /bin/echo "how are you ?"
[[email protected] ~]# crontab -r
[[email protected] ~]# crontab -l
no crontab for root
[[email protected] ~]#


    anacron任务

[[email protected] ~]# cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron


# See anacron(8) and anacrontab(5) for details.


SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root


1 65 cron.daily  run-parts /etc/cron.daily      开机后65min,
7 70 cron.weekly  run-parts /etc/cron.weekly
30 75 cron.monthly  run-parts /etc/cron.monthly
[[email protected] ~]#


确保crond及anacron服务开启

[[email protected] ~]# service crond status
crond (pid  4376) is running...
[[email protected] ~]#

[[email protected] ~]# service anacron status
anacron is stopped
[[email protected] ~]#

[[email protected] ~]# chkconfig --list crond
crond           0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected] ~]# chkconfig --list anacron
anacron         0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected] ~]#

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

Linux命令:任务计划Cron,at,batch

计划任务 at   batch   cron anacron

Linux-计划任务

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

任务计划cron

计划任务