生成文件shell脚本以及说明:
#!/bin/sh
file1=$(date +%Y%m%d%H%M%S) #定义变量获取当前时间
ALM_TYPE=BOSS4ZC #定义变量
INSTANCE_ID=62100408#定义变量
STATUS=MAJOR#定义变量
ALM_INFO=Mysql备用主机宕机10.**.62.**,请及时处理.#定义变量
ALM_TIME=$(date +‘%Y-%m-%d %H:%M:%S‘)#定义变量
file2=$INSTANCE_ID.#定义变量
file3=.alm#定义变量
file_name=$file2$file1$file3#定义变量
cd /nms/almd/data/alm #进入固定路径
touch $file_name #创建文件
chown nms $INSTANCE_ID* #修改文件用户
chgrp bomc $INSTANCE_ID* #修改文件组
echo $ALM_TYPE";"$INSTANCE_ID";"$STATUS";"$ALM_INFO";"$ALM_TIME >> $file_name #重定向到文件
file1_name=$file2$file3 #定义变量
touch $file1_name #创建文件
if [ ! -f "$file1_name" ] #判断如果文件不存在
then
echo " $host mysql login successfully "
exit 0
else
#echo " $host mysql login faild"
mv /home/mysql/check_mysql_alarm.sh /home/mysql/check_mysql_alarm1.sh
exit 2
fi
#######################################################################
用crontab -e 命令,配置定时执行脚本:
* * * * * /nms/check_mysql.sh 1>/dev/null 2>&1
* * * * * /nms/check_mysql_ip.sh 1>/dev/null 2>&1
#每分钟执行一次/nms/check_mysql.sh脚本
注意:脚本手动执行:正常;crontab执行不生效;
总结原因:
1.shell脚本中绝对路径问题(尤其是生成文件路径)
2.crontab的环境变量问题(尤其是命令调用路径)
------------------------------------------------------
# crontab的配置文件!!!
------------------------------------------------------
[[email protected] scripts]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin # 将可执行文件复制到/usr/bin下
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
# | | | | |
# * * * * * user-name command to be executed
-------------------------------------------------------------