cron—计划任务工具的配置和使用。

1、何为计划任务?

   计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在Linux中,我们经常用到 crond 服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的作务。比如我们可以在配置文件中约定每天早上3点,对计算机进行重新启动,这就是一个计划任务。

2、安装corn:

—在redhat或fedora中cron一般是默认安装的。我们可以通过查询软件包来查看其是否已经安装。

rpm -qa | grep cron ;

也可以列出某个软件包的详细列表。

rpm -ql  <包名>

—如果没有安装,我们需要插入安装光盘,或者是载入安装镜像文件。

rpm -ivh cron*

也可通过yum来安装。

yum install crontab

3、配置cron服务器:

vim /etc/crontab

这是配置前的文件:

SHELL=/bin/bash         //使用的shell类型

PATH=/sbin:/bin:/usr/sbin:/usr/bin  //shell命令的执行路径

MAILTO=root             //邮件发给哪个用户

HOME=/

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  *  command to be executed

下面我们给出一个示例:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
1 * * * * root run-parts /etc/cron.hourly  //表示每个小时的第一分钟,开始执行/etc/hourly目录下的可执行程序或脚本;
#
2 4 * * * root run-parts /etc/cron.daily   //表示每天的4点2分,开始执行/etc/cron.daily目录下的可执行程序或脚本;
#
22 4 * * 0 root run-parts /etc/cron.weekly  //每年周日4点我22分,开始执行 /etc/cron.weekly目录下的可执行程序或脚本;
#
42 4 1 * * root run-parts /etc/cron.monthly  //每月第1天的4点42分,开始执行/etc/cron.monthly目录下的可执行程序或脚本;
#
0,5,10,15,20,25,30,35,40,45,50,55 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg
 
为了让配置文件生效,我们还得重启cron:
 
service crond restart
 
也可以是:
 
/etc/init.d/crond restart
 
 
4、cron的使用:
 
首先我们需要编写计划任务文件,
格式: 分钟 小时 日 月 周  【用户名】 命令
比如我们想明天的凌晨3点20重启计算机:
        20    3  *  *  *              reboot
第一段应该定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59
第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23
第三段应该定义的是:日期,表示从每个月的第几天执行,范围从1-31
第四段应该定义的是:月,表示每年的第几个月来执行,范围从1-12
第五段应该定义的是:周,表示每周的第几天执行,范围从0-6,其中 0表示星期日。
每六段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略;
第七段应该定义的是:执行的命令和参数。
 
我们也可以在同一时间执行多个任务:
 
在上述的配置文件中有这样一句话:
#
22 4 * * 0 root run-parts /etc/cron.weekly  //每年周日4点我22分,开始执行 /etc/cron.weekly目录下的可执行程序或脚本;
 
我们可以在 /etc/cron.weekly 这个文件夹下,放置多个shell脚本。
 
比如在这一时刻想 重启web服务器
在/etc/cron.weekly/下编写httpd.sh 
 
# touch httpd.sh
# chmod 755 httpd.sh
# echo "/etc/init.d/httpd restart" > httpd.sh
 
同时我们在这一时刻,想备份网站文件
我们再在/etc/cron.weekly/下编写另一个shell脚本文件

#touch cpweb.sh
#chmod 755 cpweb.sh
#echo "cp /var/www/html  /var/www/html.bak" >cpweb.sh
 
OK!下面我们重启服务,配置即可生效。
 
关于计划任务的应用范围:
计划任务主要是让系统自动完成一些工作。比如我们可以让系统自动在某一时刻清理或备份httpd服务器的日志,然后重新启动httpd服务器,这对网络管理员来说是很重要的。也可以让系统自动清空位于/tmp目录的垃圾文件。