安装crontab: 说明: /sbin/service crond start //启动服务  查看crontab服务状态: 手动启动crontab服务: 查看crontab服务是否已设置为开机启动,执行命令: 加入开机自动启动: chkconfig --level 35 crond on

1,crontab命令

功能说明:设置计时器。

语  法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下: Minute Hour Day Month DayOFWeek Command

参  数: -e  编辑该用户的计时器设置。 -l  列出该用户的计时器设置。 -r  删除该用户的计时器设置。 -u<用户名称>  指定要设定计时器的用户名称。

2,crontab 格式

基本格式 : * *  *  *  *  command 分 时 日 月 周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列 表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令

crontab特殊的符号说明:"*"代表所有的取值范围内的数字。特别要注意哦!
"/"代表每的意思,如"*/5"表示每5个单位
"-"代表从某个数字到某个数字
","分散的数字

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每晚的21:30重启 apache。

 

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每月1、 10、22日的4 : 45重启apache。

 

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每周六、周日的1 : 10重启apache。

 

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

 

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每星期六的11 : 00 pm重启apache。

 

* */1 * * * /usr/local/etc/rc.d/lighttpd restart 每一小时重启apache

 

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 晚上11点到早上7点之间,每 隔一小时重启apache

 

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 每月的4号与每周一到周三 的11点重启apache

 

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart 一月一号的4点重启apache

 

*/30 * * * * /usr/sbin/ntpdate 210.72.145.44 每半小时同步一下时间

 

-------------------------------- 如何查看crontab的日志记录 --------------------------------------------------------

昨天crontab中的同步任务没有执行,不知道是什么原因没有执行,貌似任务hang住了,想查询一下crontab到底问题出在哪里,或者hang在了什么地方。   1.  linux 看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察   2.  unix 在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。   3. mail任务 在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。

 

安装crontab: 说明: /sbin/service crond start //启动服务  查看crontab服务状态: 手动启动crontab服务: 查看crontab服务是否已设置为开机启动,执行命令: 加入开机自动启动: chkconfig --level 35 crond on

1,crontab命令

功能说明:设置计时器。

语  法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下: Minute Hour Day Month DayOFWeek Command

参  数: -e  编辑该用户的计时器设置。 -l  列出该用户的计时器设置。 -r  删除该用户的计时器设置。 -u<用户名称>  指定要设定计时器的用户名称。

2,crontab 格式

基本格式 : * *  *  *  *  command 分 时 日 月 周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列 表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令

crontab特殊的符号说明:"*"代表所有的取值范围内的数字。特别要注意哦!
"/"代表每的意思,如"*/5"表示每5个单位
"-"代表从某个数字到某个数字
","分散的数字

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每晚的21:30重启 apache。

 

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每月1、 10、22日的4 : 45重启apache。

 

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每周六、周日的1 : 10重启apache。

 

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

 

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每星期六的11 : 00 pm重启apache。

 

* */1 * * * /usr/local/etc/rc.d/lighttpd restart 每一小时重启apache

 

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 晚上11点到早上7点之间,每 隔一小时重启apache

 

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 每月的4号与每周一到周三 的11点重启apache

 

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart 一月一号的4点重启apache

 

*/30 * * * * /usr/sbin/ntpdate 210.72.145.44 每半小时同步一下时间

 

-------------------------------- 如何查看crontab的日志记录 --------------------------------------------------------

昨天crontab中的同步任务没有执行,不知道是什么原因没有执行,貌似任务hang住了,想查询一下crontab到底问题出在哪里,或者hang在了什么地方。   1.  linux 看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察   2.  unix 在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。   3. mail任务 在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。

 http://www.live-in.org/archives/1028.html

crontab是Linux系统下的定时运行程序,非常有用,一般系统都自带。这里系统是CentOS5.7。

如果没有的话要先安装: yum install vixie-cron crontabs 1、crontab用法 一般格式: crontab [-u user] file crontab [-u user] [ -e | -l | -r ]

常用选项: -u :指定使用的用户。 -e :编辑该用户的定时任务。 -l :列出该用户的定时任务。 -r :删除该用户的定时任务。 -i :删除该用户定时任务时给予提示。 -s :附加SELinux security context string控制访问。 编辑本用户的定时任务: crontab -e 2、crontab格式 基本格式:

*  *  *  *  *    command
分  时  日  月  周   命令

第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令

3、crontab文件举例: 10 7 * * 4 /home/test.sh 每周4的7:10执行/home/test.sh脚本。

0 23 1 * * /etc/init.d/httpd restart 每月1日23:00重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示在每天18:00至23:00之间每隔30分钟重启lighttpd。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart 每一小时重启lighttpd。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每月1、10、22日的4:45重启lighttpd。

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 晚上11点到早上7点之间,每隔一小时重启lighttpd。

4、加入开机自动启动: chkconfig --level 345 crond on 5、 用户执行crontab -e的内容是写在/var/spool/cron/目录内。

6、在/etc下有: cron.daily cron.hourly cron.monthly cron.weekly 这四个目录,预设了每小时、每天、每周以及每个月的定时任务。可以把要执行的命令写在脚本里仍到相应的目录中。

7、/etc/crontab配置文件: 1)可以直接把定时任务写在该文件内,格式为:

分  时  日  月  周  用户名  命令

例如: 30 2 * * * root /etc/init.d/httpd restart PS:crontab内的命令要写绝对路径。

2)MAILTO=root是用于crontab执行后发邮件到root的邮箱,路径是/var/spool/mail。 可以把MAILTO后的值改成自己的邮箱。

8、/etc/cron.allow和/etc/cron.deny文件用于限制使用crontab的用户。

9、VPS上执行crontab -e时出错:

/bin/sh: /bin/vi: No such file or directory crontab: "/bin/vi" exited with status 127

是因为默认编辑器没有设置: vim /etc/profile 在最后加入: EDITOR='vim' export EDITOR 10、crontab日志文件路径: /var/log/cron

11、crontab设置好后要重启crond服务,使设置生效: service crond restart 参考资料: http://kangxiaowei.com/archives/8247.html

PS:crontab基本上就是这些问题了。