1四、Linux例行性工做排程

一、定义:指根据设定的时间自动执行规定的程序;
二、两种方式:(1)例行性的,每隔必定的周期要来办的事项;(2)突发性的,此次作完之后就没有的那一种,例如计算机大降价等;
三、使用指令:
安全

    (1)at:处理仅执行一次就结束排程的指令。
          a.    执行前提是必须有服务atd支持:
             /etc/init.d/atd status 查看状态
             /etc/init.d/atd start  开启服务
             /etc/init.d/atd stop  关闭服务
             /etc/init.d/atd restart  重启服务 
             chkconfig atd on **设置开机启动
bash


           b.    at的运做方式:执行at指令后,这个工做以文本的指令方式写入/var/spool/at/,等待atd服务取用或执行。  spa

    
           c.    安全考虑,并非全部人都是at工做排程,除非你承认的帐号。具体列管可利用/etc/at.allow和/etc/at.deny两个档案,若是/etc/at.allow不存在。
            /etc/at.allow 写在这个档案中的使用者才可以使用at
            /etc/at.deny 写在这个档案中的使用者不可使用at
rest


           d.    实际运做:
                  eg. 使用: 
                     例1:
                     at now +5minutes
                        at>/bin/mail root -s "testing at job" < /root/.bashrc   //执行文件
                        at> <EOF> //Ctrl + D
                       
                        例2:
                        at now +5minutes
                        at>echo "Hello" > /dev/tty1 //能够在终端机上看到显示,若是不加则须要到mailbox中查看
                      查看:at -l 等价于 atq
                      删除:at -d 等价于 atrm //取消一个在at排程中的工做
                     
              e.    batch:系统有空才进行的背景任务,利用at进行指令下达。
                  例如:机房停电在 2009/3/17 23:00 关机,但若当时系统负载过高,则暂缓执行,操做以下:
                  batch 23:00 2009-3-17
                  at> sync
              at> sync
              at> shutdown -h now
              at> <EOT>
              job 6 at 2009-03-17 23:00
              
              f.    at有点:
                1.脱机继续工做的任务 ==> 联机后下达at命令就马上脱机,直接交给系统的atd服务程序来接管,免除断网困扰。
                2.某个突发事件致使你必需要进行某项工做时这个at就很好用了。        
                
        (2)crontab:设定的工做将会一直循环进行,循环间隔时间为分钟、小时、每周、每个月或每一年,由系统服务cron来控制。
         a.    使用指令crontab操做,亦可编辑/etc/crontab支持;
           crontab -u //仅root可操做,帮其余用户创建、移除工做排程
           crontab -e //编辑crontab
           crontab -l //查看crontab
           crontab -r //移除全部的crontab工做排程,若是仅移除一项,则使用-e去编辑;
          
           例子:
           crontab -e
         # 此时会迚入 vi 癿编辑画面让您编辑工做!注意到,每项工做都是一行。
         0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
         #分 时 日 月 周 |<==============指令串========================>|
         // *星号:表明任什么时候刻都接受
         // ,逗号:表明分隔时段的意思,例如 0 3,6 * * * command 表明3和6都适用
         // -减号:表明一段时间范围内,例如8 点到 12 点乊间癿每小时癿 20 分都迚行一项工做:20 8-12 * * * command
         // /n斜线: n 表明数字,亦便是『每隔 n 单位间隔』的意思,例如每五分钟执行一次,则:*/5 * * * * command
         :wq 保存
        
         例题:倘若你的女友生日是 5 月 2 日,你想要在 5 月 1 日的23:59 发一封信给他,这封信的内容已经写在 /home/dmtsai/lover.txt 内了,该如何迚行?
          答:
          直接下达 crontab -e 后,编辑成为:
          59 23 1 5 * mail kiki < /home/dmtsai/lover.txt
          那样癿话,每一年 kiki 都会收到你的这封信喔!(固然啰,信的内容就要每一年变一变啦!)
        例题:假如每五分钟须要执行 /home/dmtsai/test.sh 一次,又该如何?
          答:一样使用 crontab -e 迚入编辑,*/5 * * * * /home/dmtsai/test.sh
        
        
         b.    为了安全性,限制使用者使用crontab,使用的限制数据有:
           /etc/cron.allow:将可使用 crontab 的帐号写入其中,若不在这个档案内的使用者则不可以使用;
           /etc/cron.deny:将不可使用 crontab 的帐号写入其中,若未记录到这个档案当中的使用者,就可使用。
           注意:以优先级来讲, /etc/cron.allow 比 /etc/cron.deny 要优先, 而判断上面这两个档案只选择一个来限制而已,所以,建议你只要保留一个便可。
事件

4.系统的配置文件:/etc/crontab
       a.     对系统的例行性任务进行操做,须要编辑/etc/crontab档案,纯文本档,须要root身份来进行编辑(注意,这里不须要crontab -e管理,crontab -e实际上是/usr/bin/crontab执行档),cron服务最低侦测限制是分钟,因此cron每分钟会读取一次/etc/crontab和/var/spool/cron内的数据内容,因此只须要编辑完/etc/crontab档并存储好后,cron的设定就会自动执行了。
crontab

       b.     crontab是读到内存当中的,因此在修改完/etc/crontab后,可能并不会立刻执行,故需重启crond服务。操做指令:/etc/init.d/crond restart内存

相关文章
相关标签/搜索