Crontab命令常用于设置周期性被执行任务。该命令从输入设备读取指令并将其存放于“crontab”文件中,crontab储存的指令被守护进程激活后,crond常常在后台运行。本文以centos为例,再次学习下crontab。(之前有看过类似教程,但都没有耐心看完...)

通过yum安装crontab:

yum -y install vixie-cron crontabs
备注:

vixie-cron是cron的主程序;

crontabs是用来安装、卸装、列出cron护进程的表格的程序;

安装好后默认没有启动,需要手动启动。

debian安装crontab

apt-get install cron -y

常用命令:

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
service crond status //查看crontab服务状态:
service crond start //手动启动crontab服务:
ntsysv //查看crontab服务是否已设置为开机启动,执行命令:
chkconfig --add crond //增加crontab服务
chkconfig --level 35 crond on //加入开机自动启动:

crontab 参数

语法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
参数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。

-r 删除该用户的计时器设置。

-i 会和-r 配合使用,在删除当前的crontab时询问,输入y 则删除

-u <用户名称>  指定要设定计时器的用户名称。
crontab 格式
基本格式 :
Minute Hour Day Month DayofWeek Command
*  *  *  *  *  command
第1列表示分钟0~59 每分钟用*或者 */1表示
第2列表示小时0~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示周日)

第6列要运行的命令

注意crontab是分用户的,以谁登录就会编辑到谁的crontab(当然,也可以指定用户)


crontab特殊的符号说明:

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

crontab示例:


30 21 * * * /etc/init.d/nginx restart //每晚的21:30重启 nginx。
45 4 1,10,22 * * /etc/init.d/nginx restart //每月1、 10、22日的4:45重启nginx。
10 1 * * 6,0 /etc/init.d/nginx restart //每周六、周日的1:10重启nginx。
0,30 18-23 * * * /etc/init.d/nginx restart //每天18:00至23:00之间每隔30分钟重启nginx。
0 23 * * 6 /etc/init.d/nginx restart //每星期六的23:00重启nginx。
* */1 * * * /etc/init.d/nginx restart //每一小时重启nginx
* 23-7/1 * * * /etc/init.d/nginx restart //晚上11点到早上7点之间,每 隔一小时重启nginx
0 11 4 * mon-wed /etc/init.d/nginx restart //每月的4号与每周一到周三 的11点重启nginx
0 4 1 jan * /etc/init.d/nginx restart //一月一号的4点重启nginx
*/30 * * * * /usr/sbin/ntpdate 210.72.145.20 //每半小时同步一下时间