Linux VPS/服务器Crontab定时任务设置及Crontab书写格式详解

  • 第一、Crontab安装
  • 第二、如何添加
  • 第三、Crontab书写格式

对于一般的Linux VPS/服务器用户来说,我们可能不需要用到Crontab定时任务功能。但是,如果我们需要深入的学习和自动化的操作某些特征任务的时候,Crontab肯定会有接触到的,比如我们会用到定时重启服务器,定时备份网站,以及我们有些执行在服务器中的挂机软件需要定时的重启释放内存等。

国外主机优惠之前有在\”Linux VPS主机利用Crontab实现定时重启任务\”文章中分享过定时重启VPS的方法,因为最近一段时间我准备有条理的把VPS基础的教程整理出来,刚巧涉及到Crontab定时任务,所以在这篇文章中将会详细的分享Crontab的书写格式以及安装,以后有需要的时候,可以参考。


隐藏

第一、Crontab安装

第二、如何添加

第三、Crontab书写格式

第一、Crontab安装

一般情况,我们的VPS/服务器中都有安装Crontab的,如果没有安装,根据下面的系统,进行安装。

A – centos系统

#安装Crontab
yum install vixie-cron crontabs
#设置开机启动Crontab
chkconfig crond on
#启动Crontab
service crond start

B – Debian系统

#安装Crontab
apt-get install cron
#重启Crontab
/etc/init.d/cron restart

PS:对照自动安装Crontab然后重启生效。

第二、如何添加

crontab -e

输入上面的命令,然后我们可以打开文件,只要在文件中输入我们需要预定义的定时脚本,保存退出后就会定时执行。

第三、Crontab书写格式

如果我们记不住书写格式也不要紧,因为我也记不住,我会把常用的格式、需要用到的脚本记录下来,以后有需要用到的时候直接复制。

A – 基本格式

*  *  *  *  *  command
分 时 日 月 周 命令

我们看上面,基本格式是这样的,前面5个*号的位置是执行的时间设定。采用的是二十四小时制度。后面的COMMAND是代表我们需要执行的脚本命令。

B – 常用的Crontab命令

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

每月1号的4点重启apache

需要说明:我们这里需要看清的是前面5个*对应的时间设置,对于后面的COMMAND命令还需要根据实际的系统进行设置,因为我们有些时候安装的一键包和WEB面板,命令路径不一样。

我们也可以在设置之后,执行:

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

看看,设置的定时任务是否生效。