码迷,mamicode.com
首页 > 系统相关 > 详细

linux定时任务

时间:2017-11-02 16:04:01      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:常用选项   comm   gre   方式   ddr   atq   info   系统   系统维护   

 
 
定时任务命名有3个,at, batch, crontab
 
一.  at命令:
 
        at [option] TIME,at命令输完后,用ctrl+d完成输入
 
            TIME方式:
                1)HH:MM [YYYY-mm-dd]
                2)noon, midnight, teatime(下午4点)
                3)tomorrow
                4)now+#{minutes,hours,days, OR weeks},比如at now+3minutes
 
            常用选项:
                -q QUEUE:
                -l: 列出指定队列中等待运行的作业;相当于atq
                -d: 删除指定的作业;相当于atrm
                -c: 查看具体作业任务;
                -f /path/from/somefile:从指定的文件中读取任务,一次执行多个任务,例如at -f at.task now+10minutes
 
            注意:作业的执行结果以邮件通知给相关用户;
 
  二.    batch命令:
           让系统自行选择空闲时间去执行此处指定的任务,不能自己指明时间;
 
 三.    周期性任务计划:cron
 
         1)相关的程序包:(rpm -qa | grep cron, rpm -qi cronie)
              cronie: 主程序包,提供了crond守护进程及相关辅助工具;
              cronie-anacron:cronie的补充程序;用于监控cronie任务执行状况;如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务;
              crontabs:包含CentOS提供系统维护任务;
 
         2)确保crond守护处于运行状态:
                CentOS 7:
                    systemctl status crond
                        ...running... 说明已启动
 
                CentOS 6:
                    service crond status
 
 
 四.     系统cron任务:系统自行维护作业,  配置文件:/etc/crontab
           
             例1:晚上9点10分运行echo命令;        10 21 * * *     gentoo /bin/echo "Howdy!"  gentoo是用户名                                
             例2:每3小时echo命令;                       0 */3 * * * gentoo /bin/echo "howdy!"   注意系统cron需要指定用户身份
                    
                时间表示法:
                    (1) 特定值;
                        给定时间点有效取值范围内的值;
                    (2) *
                        给定时间点上有效取值范围内的所有值;
                        表示“每...”;
                    (3) 离散取值:,
                        #,#,#
                    (4) 连续取值:-
                        #-#
                    (5) 在指定时间范围上,定义步长:
                        /#: #即为步长
           
 
  五.       用户cron:
                crontab命令定义,每个用户都有专用的cron任务文件:/var/spool/cron/USERNAME
 
                crontab命令:
                    crontab [-u user] [-l | -r | -e] [-i]
                        -l: 列出所有任务;
                        -e: 编辑任务;
                        -r: 移除所有任务;
                        -i:同-r一同使用,以交互式模式让用户有选择地移除指定任务;
                        -u user: 仅root可运行,代为为指定用户管理cron任务;
 
            注意:运行结果以邮件通知给相关用户;
                (1) COMMAND > /dev/null  --正确运行不发邮件
                (2) COMMAND &> /dev/null ---不管是否正常运行,都不发邮件
 
                对于cron任务来讲,%有特殊用途;如果在命令中要使用%,则需要转义;不过,如果把%放置于单引号中,也可以不用转义;
 
 
 六           思考:
                (1) 如何在秒级别运行任务?
                    * * * * * for i in 0 1 2; do echo "hi"; sleep 20; done     ---每20秒执行一次
 
                (2) 如何实现每7分钟运行一次任务? (因为7不能被60整除,所以*/7会有问题),可以考虑用  sleep命令
                     
                    sleep NUMBER[SUFFIX]...
                        SUFFIX:
                            s: 秒, 默认
                            m: 分
                            h: 小时
                            d: 天
 
 
        练习:目录需要实现创建好
            1、每4小时备份一次/etc目录至/backup目录中,保存的文件名称格式为“etc-yyyy-mm-dd-HH.tar.xz”;
            2、每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”;
            3、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中;
            4、工作日时间内,每小执行一次“ip addr show”命令;

linux定时任务

标签:常用选项   comm   gre   方式   ddr   atq   info   系统   系统维护   

原文地址:http://www.cnblogs.com/regit/p/7772104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!