前面按客户要求编译了系统巡检的SHELL脚本,接下来就是把此巡检脚本放到每日的计划任务里面,自动执行。
说明一下,我总结此文档所用的试验机是我虚拟机上的系统
简单介绍计划任务
上的计划任务和上的作用一样,想必大家都不陌生。计划任务,是任务在约定的时间执行已经计划好的工作。在Linux系统中,计划任务一般是由cron承担,我们可以把cron设置为开机时自动启动。cron启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件),然后cron会根据命令和执行时间来按时来调用度工作任务。
Cron的安装与启动
Cron的安装
一般linux系统的cron是默认安装的,我们可以用包查看命令来确认一下:
[root@oracle ~]# rpm -qa|grep cron
anacron-2.3-32
crontabs-1.10-7
vixie-cron-4.1-50.el4
这些安装包默认是安装的,如果没有安装,那么需要找到相应的包,用命令安装:
[root@oracle ~]# rpm –ivh***(包名称)
Cron的启动
通用方法
查看crond是否启动
[root@oracle ~]# pgrep crond
5506
杀死crond进程
[root@oracle ~]# pkill crond
[root@oracle ~]# pgrep crond
启动
[root@oracle ~]# /usr/sbin/crond
[root@oracle ~]# pgrep crond
7273
Redhat的适用方法
[root@oracle ~]# /etc/init.d/crond stop
Stopping crond: [OK]
[root@oracle ~]# /etc/init.d/crond start
Starting crond: [OK]
[root@oracle ~]# /etc/init.d/crond restart
Stopping crond: [OK]
Starting crond: [OK]
Crond配置任务计划的格式
分钟小时日月周[用户名]命令
说明:
第一段应该定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59
第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23
第三段应该定义的是:日期,表示从每个月的第几天执行,范围从1-31
第四段应该定义的是:月,表示每年的第几个月来执行,范围从1-12
第五段应该定义的是:周,表示每周的第几天执行,范围从0-6,其中0表示星期日。
每六段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略;
第七段应该定义的是:执行的命令和参数。
举例:计划在每天的10:30执行自动巡检脚本
把SHELL脚本上传到相应的目录
[root@oracle u01]# ls -l
-rwxrwxrwx1 rootroot2117 Feb 16 14:46 aix_xunjian_redh.sh
注意更改文件的mode :chmod
编辑/etc/crontab
[root@oracle u01]# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
#excute the shell
30 10 * * * root /u01/aix_xunjian_redh.sh
按照文档,需要重启crond:
[root@oracle u01]# /etc/init.d/crond restart
Stopping crond: [OK]
Starting crond: [OK]
不过我没有重启也执行成功了!