CentOS Linux安装crontab系统定时运行程序

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

如果没有的话要先安装:

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

或者
/etc/rc.d/init.d/crond start

加入开机自动启动:
chkconfig –level 35 crond on

关于笃志情缘

人尽其责,物尽其用,不成功,也无憾,毕竟奋斗过。走自己的路吧! 笃志建站:虚拟主机、域名注册、云主机、成品网站、企业邮局、CDN加速 http://www.duzhi.net QQ:3081689173
此条目发表在Linux相关分类目录,贴了标签。将固定链接加入收藏夹。

CentOS Linux安装crontab系统定时运行程序》有1条回应

  1. 笃志情缘/mg说:

    不错,很好用

评论已关闭。