CentOS Linux安装crontab
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