huijial 发表于 2018-8-27 06:24:42

生成文件shell脚本以及说明(一)

  生成文件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的配置文件!!!
  ------------------------------------------------------
  # 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
  -------------------------------------------------------------

页: [1]
查看完整版本: 生成文件shell脚本以及说明(一)