首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

《鸟哥的linux私房钱菜》笔记之例行性工作排程(crontab/at)

2012-12-30 
《鸟哥的linux私房菜》笔记之例行性工作排程(crontab/at)crontab的启动和停止cron服务是linux的内置服务,但

《鸟哥的linux私房菜》笔记之例行性工作排程(crontab/at)
crontab的启动和停止

cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

/sbin/service crond start    //启动

/sbin/service crond stop     //停止

/sbin/service crond restart  //重启

/sbin/service crond reload   //重新加载配置

备注: 要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入/sbin/service crond start 即可。同样适用于at

crontab命令使用

[root@www ~]# crontab [-u username] [-l|-e|-r] 

选项与参数:

 -u :root帮其他使用者建立/移除 crontab 工作排程; 

-e :编辑 crontab的内容 

-l :查阅 crontab 的内容 

-r :移除所有的 crontab 的内容。(若仅要移除一项,请用 -e 去编辑)

crontab语法说明

例子: 52  5  *   *   *   /usr/local/src/analog-5.32-lh/analog

     #分  时  日  月  周   |<==============指令串==============>|

表示日期的部分除了可以是数字外,还可以是一下特殊字符:

特殊字符

代表意义

 *(星号) 

 代表任何时刻。 如:52  12  *   *  * 表示任何月/周/日的5点52分

 ,(逗号) 

 代表分隔时段。如: 52  5,22  *  *  *表示任何月/周/日的5点或22点52分

 -(减号) 

 代表一段时间范围内。如: 52  5-8  *  *  *表示任何月/周/日的5点到8点内每个小时的52分。

 /n(斜线) 

每隔 n 单位。如:20 */2  *  *  * 表示任意月/周/日的2、4、6...24等点20分

所以示例中的意思是:在每月每周每日的5点52分运行/usr/local/src/analog-5.32-lh/analog文件。

备注: 周和日月不可同时并存。

Ex:(crontab -e进入编辑)

1、59 23 1 5 * mail kiki < /home/dmtsai/lover.txt

 //5月1号23时59分将lover.txt的内容邮寄给kiki

2、*/5 * * * * /home/dmtsai/test.sh

// 每5分钟执行一次test.sh

at命令使用

[root@www ~]# at [-mldv] TIME 

[root@www ~]# at -c 工作号码 

选项与参数: 

-m :当 at 的工作完成后,即使没有输出讯息,亦以 email 通知使用者该工作已完成。 -l :at -l 相当于atq,列出目前系统上面的所有该用户的at 排程;

-d :at -d 相当于atrm ,可以取消一个在 at 排程中的工作;

-v :可以使用较明显的时间格式栏出 at 排程中的任务栏表; 

-c :可以列出后面接的该项工作的实际指令内容。

TIME的格式:

HH:MM YYYY-MM-DD

HH:MM[am|pm] + number [minutes|hours|days|weeks] 

执行at会进入at shell环境,输入要完成的工作,然后按CTRL-D结束工作输入。

Ex:

1、 [root@www ~]# at 23:00 2009-03-17

at> /bin/sync 

at> /bin/sync 

at> /sbin/shutdown -h now 

at>CTRL-D

//2009-03-17 23:00 执行关机

2、 at -c 2

备注:由于指令下达与PATH变量有关,同时与当时的工作目录也有关连 (如果有牵涉到档案的话),因此使用绝对路径来下达指令,会是比较一劳永逸的方法。

参考:http://blog.csdn.net/21aspnet/article/details/6798179

热点排行