安装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基本上就是这些问题了。