文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>计划任务之二(crontab命令)

计划任务之二(crontab命令)

时间:2010-09-26  来源:fzguon

     循环执行的例行性命令,则是由cron(crond)系统服务来控制的。由于系统本身就有相当多的例行性工作,因此,这个系统服务是默认启动的。另外,由于用户自己也可以进行例行性工作任务分配,所以,Linux也提供用户控制例行性工作的命令(crontab)
   1.crontab的工作
     与at命令类似,可以限制使用crontab的用户账号。使用的限制数据有:/etc/cron.allow与/etc/cron.deny(和at命令的用法一样)。当用户使用crontab命令建立工作任务分配后,该项工作就会被记录到/var/spool/cron/中,而且是以账号来识别的。举例来说,guo使用crontab后,他的工作会记录到/var/spool/cron/guo里。但请注意,不要使用vi直接编辑该文件,因为可能使用由于语法输入错误,会导致无法执行cron。
   注意:cron所执行的每一项工作都会记录到/var/log/cron这个登录文件中。
   2.crontab的语法
    [root@redflag ~] # crontab [-u user] [-l | -e | -r] 
    参数说明: 
     -u:只有root能下达的参数,即帮其他用户建立/删除crontab 
     -l:查看crontab的内容 
     -e:编辑crontab的内容 
     -r:删除crontab的内容 
     范例:

 范例一:用guo在每天的12:00发信息给自己
    [guo@redflag ~] # crontab -e 
    # 此时会进入vi的编辑画面让您编辑。注意,每项工作都是一行
    0 12 * * * mail guo –s “at 12:00” < /home/guo/test.txt 
    分时日月周 |========指令列==================|
   整个过程如前所述,会进入vi的编辑画面,然后一个工作一行来编辑,编辑完毕后输入“:wq”存储后离开vi就可以了。每项工作的格式都是“5个时间参数  实际操作命令”。5个实际参数代表的含义见表所示:        分钟
        小时        日期         月份                          周
范围 0-59 0-23 1-31 1-12 0-7 (0、7为星期天)

 

   另外,还有一些辅助的字符,如下表

                      特殊字符                                                            代表意义
* 表示任何时间都接受。举例来说,范例中,日、月、周都是*,表示“不论何月、何日星期几的12:00都执行后续命令”
, 表示分隔时段的意思。举例来说,如果要执行的工作在3:00与6:00,就会是:0 3,6 * * * command
- 表示一段实际范围内,如8点到12点间,每小时的20分都进行一项工作:20 8-12 * * * command
/n n代表数字,即“每隔n单位时间”,例如每5分钟进行一次,则是:*/5 * * * * command


 

 我们这里作几个例子!

  例题一:假如你的朋友生日是5月2日,你想要在5月1日的23:59发一封信给他,这封信的内容已经写在 /home/guo/lover.txt 中了
    [guo@redflag ~] # crontab -e
    59 23 1 5 * mail kiki < /home/guo/lover.txt
 例题二:假如你每隔五分钟要去执行一个名为 test.sh 的文件一次,则: 
    [guo@redflag ~] # crontab -e 
    59 23 1 5 * mail kiki < /home/guo/lover.txt  <==刚刚的那个指令还存在! 
    */5 * * * * /home/guo/test.sh  <==新加入的一个内容!
 查询用户当前的crontab内容,我们可以这样:
    [guo@redflag ~] # crontab –l
    59 23 1 5 * mail kiki < /home/guo/lover.txt
    */5 * * * * /home/guo/test.sh
    #注意,若仅想删除一项工作,必须要用crontab –e去编辑。
    #如果想删除全部的工作,才使用crontab –r。
    [guo@redflag ~] # crontab –r
    [guo@redflag ~] # crontab –l
    No crontab for guo

   3.系统的设置:/etc/crontab
    系统的例行性任务只要用vi编辑/etc/crontab,而命令crontab -e 这个crontab其实是/usr/bin/crontab这个执行文件,但/etc/crontab可是一个“纯文字文件”,你可以root的身份编辑一下这个文件。在Linux中crontab会自动的帮我们每分钟重新读取一次/etc/crontab的例行工作事项,但是在你修改完/etc/crontab之后,可能并不会马上执行,这个时候请重新启动 crond 这个服务:/etc/rc.d/init.d/crond restart
   来看看 /etc/crontab 这的文件的内容吧: 
   [root@redflag ~] # 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   <==每小时执行的工作 
   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  <==每个月执行的工作 
   分 时 日 月 周  执行者   命令串
   这个文件与刚执行crontab –e的内容很相似,但有几个地方不太一样。
   a)MAILTO=root:当 /etc/crontab 这个文件中的例行性命令发生错误时,会将错误讯息或者是屏幕显示的讯息传给root。由于root并无法在客户端中收信,因此,我通常都将这个e-mail改成自己的账号,

相关阅读 更多 +
排行榜 更多 +
边境检察最后区域手机版下载

边境检察最后区域手机版下载

角色扮演 下载
酋长你别跑手游下载

酋长你别跑手游下载

休闲益智 下载
心动漫画app下载官方版

心动漫画app下载官方版

浏览阅读 下载