Linux服务器Crontab定时自动执行命令及参考用法

一、安装Crontab

一般我们服务器Centos、Debian都默认安装过的,直接执行第二步就可以,但是有些发行版是没有安装的,所以我们不管如何直接先安装一次,如果已经安装或者没安装过的,也无所谓。

Centos

yum install vixie-cron crontabs
chkconfig crond on
service crond start

Debian

apt-get install cron
/etc/init.d/cron restart

这里根据我们服务器的环境,然后安装crontab,并启动。

二、编辑定时自动脚本

在ssh中执行脚本,并编辑文件。

crontab -e 0 4 * * * /sbin/reboot

表示每天晨4点重启服务器,编辑完毕之后:wq保存并退出。

三、保存退出重启生效

/etc/rc.d/init.d/crond stop
/etc/rc.d/init.d/crond start

这样执行后就可以生效,可以实现我们需要的定时自动重启服务器的功能

附注内容

使用格式
crontab [-u user] {-l | -r | -e}
主要参数
-e:执行文字编辑器来设定时程表,内空的文字编辑器是vi
-r:删除目前的时程表
-l列出目前的时程表。

Crontab文件的格式为”M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。Cmd表示要运行的程序,它被送入sh执行,这个shell只有USER、HOME、SHELL三个环境变量。

示例说明:

每五分钟执行  */5 * * * *
每小时执行     0 * * * *
每天执行      0 0 * * *
每周执行      0 0 * * 0
每月执行      0 0 1 * *
每年执行      0 0 1 1 *

在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。