文档章节

14、Linux例行性工作排程

lisn
 lisn
发布于 2015/07/27 13:24
字数 1259
阅读 100
收藏 8

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

    (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 **设置开机启动


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

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


           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的设定就会自动执行了。

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

© 著作权归作者所有

lisn
粉丝 1
博文 36
码字总数 20700
作品 0
普陀
高级程序员
私信 提问
Linux 上常见的例行性工作

Linux 上常见的例行性工作 一 、仅执行一次的工作调度单一工作排程的运作,那就是 at 这个指令的运作! 1.atd 启动与 at 运作的方式 [root@localhost ~]# /etc/init.d/atd restart Stopping...

121500783
2014/04/23
0
0
计划性任务cron at的简单应用

Linux 工作排程的各类 at cron 一种是例行性 at atd服务 一种是突发性 cron crond服务 at (batch) 后台执行 atd 服务启动 /etc/init.d/atd restart chkconfig atd on chkconfig --list atd ...

长平狐
2013/09/17
37
0
例行性工作

什么是例行性工作 有的工作是例行性的(如上下班打卡), 有的工作则是临时发生的(如商品大降价)。*** Linux工作调度的种类: at cron 两种工作调度的方式: 一种是例行性的,就是每隔一定的...

nao
2016/12/26
15
0
crontab笔记-1

例行工作安排主要指令有at和crontab at指令语法: [root@www ~]# at [-mldv] TIME [root@www ~]# at -c 工作号码 选项与参数: -m :当 at 的工作完成后,即使没有输出讯息,亦以 email 通知使...

legendland
2017/12/18
0
0
linux cron学习体系

linux有个服务,叫cron,提供例行性作业调度。 crontab是一个命令,用于设置周期性被执行的作业。该词源于希腊语 chronos(χρόνος),原意是时间,而crond正是它的守护进程。 linux系统原...

长平狐
2012/09/19
76
0

没有更多内容

加载失败,请刷新页面

加载更多

ubuntu或ubuntu kylin优麒麟中安装QQ、wechat微信、百度网盘

从中国国内的地址下载deepin wine,码云上的。这样网速比较快。然后,按照说明向下安装。 https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu...

gugudu
15分钟前
1
0
基于redis分布式锁实现“秒杀”

最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源...

别打我会飞
34分钟前
10
0
Zookeeper的实践指南

本章重点 1.数据存储2.基于Java API初探Zookeeper的使用3.深入分析Watcher机制的实现原理4.Curator客户端的使用,简单高效 数据存储 事务日志快照日志运行时日志 bin/zookeepe...

须臾之余
38分钟前
1
0
MySQL mybatis Point类型数据

MySQL中的point用于表示GIS中的地理坐标,在GIS中广泛使用 如何写入mysql,如下图: CREATE TABLE `test-point` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '序号', `point` ......

张欢19933
49分钟前
2
0
设计模式-适配器模式

适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入...

HOT_POT
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部