关于 crontab :
crontab 命令常见于 Unix 和类 Unix 的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“ crontab ”文件中,以供之后读取和执行。该词来源于希腊语 chronos( χρ ? νο ?) ,原意是时间。
通常, crontab 储存的指令被守护进程激活, crond 常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为 cron jobs 。
安装 crontab (现在大部分系统其实都已经预装了) :
[root@CentOS ~]# yum install vixie-cron [root@CentOS ~]# yum install crontabs
说明:
vixie-cron 软件包是 cron 的主程序;
crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
cron 是 linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start # 启动服务 /sbin/service crond stop # 关闭服务 /sbin/service crond restart # 重启服务 /sbin/service crond reload # 重新载入配置
查看 crontab 服务状态:
service crond status
手动启动 crontab 服务:
service crond start
其他命令:
# 查看 crontab 服务是否已设置为开机启动,执行命令: ntsysv # 加入开机自动启动 : chkconfig --level 35 crond on # 列出 crontab 文件 crontab -l # 编辑 crontab 文件 crontab -e # 删除 crontab 文件 $ crontab -r # 恢复丢失的 crontab 文件 # 假设你在自己的 $HOME 目录下还有一个备份,那么可以将其拷贝到 /var/spool/cron/<username> ,其中 <username > 是用户名 # 或者使用如下命令其中, <filename> 是你在 $HOME 目录中副本的文件名 crontab <filename>
日志文件: /var/log/cron* (特别注意,如果你不知道 crontab 是否运行了,可以直接查这个日志)
补充:
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 文件的一些例子:
# 每晚的 21:30 重启 apache 30 21 * * * /usr/local/etc/rc.d/lighttpd restart
# 每月 1 、 10 、 22 日的 4 : 45 重启 apache 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
# 每周六、周日的 1 : 10 重启 apache 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
# 每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 apache 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
# 每星期六的 11 : 00 pm 重启 apache 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
# 晚上 11 点到早上 7 点之间,每隔一小时重启 apache * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
# 每一小时重启 apache * */1 * * * /usr/local/etc/rc.d/lighttpd restart
# 每月的 4 号与每周一到周三的 11 点重启 apache 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
# 一月一号的 4 点重启 apache 0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
# 每半小时同步一下时间 */30 * * * * /usr/sbin/ntpdate 210.72.145.44
3 、其他任务调度
cron 默认配置了调度任务,分别为: hourly 、 daily 、 weekly 、 mouthly ,默认配置文件为 /etc/anacrontab
将需要执行的脚本放到相应的目录下即可,目录分别为:
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/ect/cron.mouthly
参考 :
[1] crontab. 百度百科 .http://baike.baidu.com/view/1229061.htm
[2] 非主流空间 .centos 中 crontab -e 用法详解 .http://hi.baidu.com/ldbf/blog/item/b4dc9e02f23dcb124bfb51b8.html
[3] 鳥哥的 Linux 私房菜 . 例行性工作排程 (crontab).http://linux.vbird.org/linux_basic/0430cron.php
[4] DELL-Richard Li.Linux 下 cron 调度的几种实现方式比较 .http://zh.community.dell.com/techcenter/f/21/t/1185.aspx