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

来源:互联网 发布:手机淘宝怎样注册网店 编辑:程序博客网 时间:2024/05/22 10:46

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  *   *  * 表示任何//552

 ,(逗号

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

 -(减号

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

 /n(斜线

每隔 n 单位。如:20 */2  *  *  * 表示任意月//246...2420

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

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

Ex:crontab -e进入编辑)

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

 //512359分将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