Chinaunix首页 | 论坛 | 博客
  • 博客访问: 80282
  • 博文数量: 13
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 247
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-02 18:05
文章分类
文章存档

2014年(13)

分类: 其他平台

2014-01-06 11:48:29

一、介绍

   crontab命令的功能是在一定的时间间隔调度一些命令的执行。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。


二、参数

   -u :指定一个用户

   -l :列出某个用户的任务计划

   -r :删除某个用户的任务

   -e :编辑某个用户的任务


三、cron文件

   1、编辑命令

       1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出

       2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务


   2、文件格式

       Minute Hour Day Month DayofWeek CommandPath


   3、参数说明

       Minute:每个小时的第几分钟执行该任务;取值范围0-59

       Hour:每天的第几个小时执行该任务;取值范围0-23

       Day:每月的第几天执行该任务;取值范围1-31

       Month:每年的第几个月执行该任务;取值范围1-12

       DayOfWeek:每周的第几天执行该任务;取值范围0-6,0表示周末

       CommandPath:指定要执行的程序路径


   4、时间格式

       * :表示任意的时刻;如小时位 * 则表示每个小时

       n :表示特定的时刻;如小时位 5 就表示5时

       n,m :表示特定的几个时刻;如小时位 1,10 就表示1时和10时

       n-m :表示一个时间段;如小时位 1-5 就表示1到5点

       */n : 表示每隔多少个时间单位执行一次;如小时位 */1 就表示每隔1个小时执行一次命令,也可以写成 1-23/1


   5、调度示例

       * 1 * * * /opt/script/backup.sh :从1:0到1:59 每隔1分钟 执行

       15 05 * * * /opt/script/backup.sh :05:15 执行

       */10 * * * * /opt/script/backup.sh :每隔10分 执行

       0 17 * * 1 /opt/script/backup.sh :每周一的 17:00 执行

       2 8-20/3 * * * /opt/script/backup.sh :8:02,11:02,14:02,17:02,20:02 执行


   6、后台执行

       1)、说明

           当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。可以使用&命令把作业放到后台执行

           需要与用户交互的作业当注意不要放在后台执行

           在后台运行的作业一样会将结果输出到屏幕上,如果放在后台运行的作业会产生大量的输出,最好将它的输出重定向到某个文件中

       2)、标识

           0 :表示键盘输入

           1 :表示标准输出

           2 :表示错误输出

           & :后台执行

           > : 覆盖文件内容

           >>:追加文件内容

           &1 :表示的是文件描述1,表示标准输出;如果这里少了&就成了数字1,就表示重定向到文件1

           2>&1 :将错误输出重定向到标准输出

           1>/dev/null :将标准输出重定向到文件/dev/null;1>/dev/null等同于>/dev/null

       3)、示例

           0 2 * * * /u01/test.sh 1>/dev/null 2>&1 &

           这句话的意思就是在后台执行这条命令,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null 文件,也就是清空。

       4)、位置

           2>&1 需要写在command 1>file 后面。

           在command 1>file 2>&1,首先是 command 1>file 将标准输出重定向到file中,2>&1 是标准错误拷贝了标准输出,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。

           如果改成:command 2>&1 >file 2>&1,标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。



阅读(1404) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~