文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>RHCE033--计划任务

RHCE033--计划任务

时间:2010-10-02  来源:twenty_four

 
    一、Linux的计划任务
    Linux系统需要频繁定期执行的任务包括:转移日志文件以避免装满文件系统,
    备份数据库以及连接时间服务器来执行系统时间同步等等。同时为了降低系统
    管理员的工作量,通过Linux的计划任务就可以实现这些需求。
    Linux系统支持一些能够自动执行任务的服务我们称其为计划任务:
    at:指定一个时间执行一个任务 
    cron:根据一个时间表自动执行任务
    anacron:在一个指定时间间隔错过后自动执行任务(不作具体介绍)
     
    二、at功能介绍
    at服务:安排一个任务在未来执行
    at服务需要系统后台有一个atd进程
    [root@51cto ~]# service atd start
    启动 atd:                                                 [确定]     //启动at服务
    常用指令
  1. at:安排延时任务
  2. at命令的写法非常灵活:
    at 18:00pm July 9
    at 6 pm Monday
    at 2:00
    at noon + 5 minutes
    回车后可以在之后的at>提示符下输入任务指令,完成后Ctrl+D存盘退出。
    [root@51cto ~]# at now       //立刻执行的计划任务
    at> echo welcome to 51cto >/root/huihui    //重定向内容
    at> <EOT>     //按Ctrl+D保存退出
    job 9 at 2010-10-01 06:08
    [root@51cto ~]# cat /root/huihui
    welcome to 51cto
    [root@51cto ~]# clock
    2010年10月01日 星期五 06时09分31秒  -0.106026 seconds
    [root@51cto ~]# at 06:11   //制定06:11执行的计划任务
    at> echo welcome to blog.51cto.com >>/root/huihui  //追加内容
    at> <EOT>     //按Ctrl+D保存退出
    job 10 at 2010-10-01 06:11
    [root@51cto ~]# date
    2010年 10月 01日 星期五 06:10:51 PDT
    [root@51cto ~]# cat /root/huihui
    welcome to 51cto
    welcome to blog.51cto.com
    [root@51cto ~]# date
    2010年 10月 01日 星期五 06:11:05 PDT
  3. atq:查询当前的等待任务
  4. [root@51cto ~]# date     //显示当前时间
    2010年 10月 01日 星期五 06:17:14 PDT
    [root@51cto ~]# at 07:00
    at> /bin/date      //7点执行/bin/date
    at> <EOT>
    job 11 at 2010-10-01 07:00
    [root@51cto ~]# atq     //查询当前的等待任务
    11      2010-10-01 07:00 a root
  5. atrm:删除等待任务
  6. [root@51cto ~]# atrm 11   //删除上面的等待任务
    [root@51cto ~]# atq     //查询当前的等待任务,没显示
  7. 利用/etc/at.allow和/etc/at.deny这两个文件可以限制用户对at的使用,在Linux中
  8. 只有写在/etc/at.allow文件中的用户才可以使用at(即使不出现在/etc/at.deny中)
     
    三、cron功能介绍
    cron是一个可以用来根据时间、日期、月份、星期的组合来调度重复任务执行的守护进程
    要使用cron服务,需要vixie-cron RPM包,运行crond服务即可
    [root@51cto ~]# rpm -q vixie-cron    //查看是否已经安装好软件包,默认装好了
    vixie-cron-4.1-76.el5
    [root@51cto ~]# service crond status    //查看此服务是否启用
    crond (pid 3121) 正在运行…
    cron服务是通过crontab命令来设定的,crontab -e是针对用户的cron服务设计的,如果
    是由系统执行的计划任务,则不需要用crontab -e而只要编辑/etc/crontab这个文件。
    cron服务每分钟不仅要读一次/var/spool/cron内的文件,而且要读一次/etc/crontab,因此
    可以通过该文件运用cron服务。
    注意:用crontab配置针对的是某个用户的任务,而编辑/etc/crontab则针对的是系统的任务:
    [root@51cto ~]# cat /etc/crontab    //查看/etc/crontab
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root     //如果出现错误,或者有数据输出,那么该数据作为mail发给root
    HOME=/          //使用者运行的路径,这里是根目录
    # run-parts
    01 * * * * root run-parts /etc/cron.hourly             //每小时执行里头的脚本
    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          //每月执行里头的脚本
    分钟(0-59)小时(0-24)天(1-31)月(1-12)周(0-7)用户名 脚本目录
  9. cron服务是通过crontab命令来设定的:
  10. crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
    crontab -l //列出某个用户cron服务的详细内容
    crontab -r //删除某个用户的cron服务
    crontab -e //编辑某个用户的cron服务
    默认脚本存放在/var/spool/cron/<username>
    比如说root查看自己的cron设置:crontab -u root -l   /   crontab -l
    再例如,root想删除51cto的cron设置:crontab -u 51cto -r   
    在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e   
    进入vim编辑模式,编辑的内容一定要符合下面的格式:M H D m d cmd
    M: 分钟(0-59)
    H:小时(0-23)
    D:天(1-31)
    m: 月(1-12)
    d: 一星期内的天(0~6,0为星期天)。
    cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
  11. 比如说,每天19:04显示问候信息:
  12. 04 19  *  *  *    echo "good morning" >> /root/24.txt
    [root@51cto ~]# date
    2010年 10月 01日 星期五 19:04:28 PDT
    [root@51cto ~]# cat /root/24.txt
    good morning                   //测试使用而已
    [root@51cto ~]# crontab -l     //查看计划列表
    04 19  *  *  *    echo "good morning" >> /root/24.txt
  13. 晚上11点到早上8点之间每两个小时提醒:
  14. 0    23-8/2   *   *   *   echo   "have a good dream " >> /root/24.txt
  15. 每个月的4号和每个星期的周一到周三早上11点执行某个命令:
  16. 0   11   4   *   1-3   command line
  17. 每个周六的11:00pm重启xinetd服务:
  18. 0   23   *  *   6   /sbin/service xinetd restart
  19. 在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
  20. 0     6-12/3    *   12   *   /usr/bin/backup
  21.  每月1号凌晨2点,清理/tmp目录下的文件:
  22. 0    2   1   *    *   rm -f  /tmp/*
  23. 每年4月20号给twentyfour发信祝他生日快乐:
  24. 0    *    20    4    *   root  mail  [email protected] < echo "happy birthday to you 24"
    注意:单纯是echo的话从屏幕是看不到任何输出的,因为cron把任何输出都email到root
    邮箱了,还有就是在修改完/etc/crontab之后,可能不会马上执行,可以重启服务
    /sbin/service crond restart ,因为crontab是读到内存中的。
  25. crontab计划任务编写的步骤:
  26.  1、启动crontab服务
      service crond start|restart
     2、编写计划任务
      crontab -e (具体如上,或者其它的方法)
      service crond restart
     3、查看cron日志。
      tail -f /var/log/cron
  27. cron的使用限制
  28. 默认情况下,所有用户都可以定制自己的守护任务
    系统的守护任务只能由root来编辑
    限制/允许 用户使用cron
    /etc/cron.allow
    /etc/cron.deny      //系统默认只存在拒绝文件
    如果系统中存在cron.allow,则只有在列在文件中的用户才可以使用crontab指令来定制
    自己的守护任务。
    如果系统中存在cron.deny,则列在文件中的用户不可以使用crontab指令来定制自己的
    守护任务,其他人可以。
    并且控制文件的格式是每行一个用户,不允许出现空格。
相关阅读 更多 +
排行榜 更多 +
愤怒的火柴人4中文版下载

愤怒的火柴人4中文版下载

角色扮演 下载
嘟嘟脸恶作剧手游下载

嘟嘟脸恶作剧手游下载

休闲益智 下载
掘地求升2(困难攀岩)下载手机版

掘地求升2(困难攀岩)下载手机版

休闲益智 下载