客户应用系统服务器要做健康检查,操作系统为Red Hat Enterprise Linux 5.6,数据库为oracle 10g,写了如下shell脚本:
  1. #!/bin/bash
  2.  
  3. echo "You are logged in as `whoami`";
  4.  
  5. if [ `whoami` != root ]; then
  6.  
  7. echo "Must be logged on as root to run this script."
  8.  
  9. exit
  10.  
  11. fi
  12.  
  13. CHECK_DATE=`date +%F`
  14.  
  15. echo "Running script at `date`"
  16.  
  17. CHECK_REPORT_PATH=/tmp/getinfo
  18.  
  19. ls -d $CHECK_REPORT_PATH
  20.  
  21. if [ $? -gt 0 ]
  22.  
  23. then
  24.  
  25. mkdir $CHECK_REPORT_PATH
  26.  
  27. fi
  28.  
  29. chmod -R 777 $CHECK_REPORT_PATH
  30.  
  31. CURRENT_DIR=`pwd`
  32.  
  33. echo "#################### Check Start ####################"
  34.  
  35. HOST=`hostname`
  36.  
  37. echo "********Hostname Check**********" >$CHECK_REPORT_PATH/Report_$CHECK_DATE
  38.  
  39. echo "Hostname is $HOSTNAME" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  40.  
  41. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  42.  
  43. #系统版本检查
  44.  
  45. echo "********OS Level**********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  46.  
  47. uname -a >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  48.  
  49. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  50.  
  51.  
  52.  
  53. #系统日志检查
  54.  
  55. echo "********System log*******" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  56.  
  57. cat /var/log/messages >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  58.  
  59. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  60.  
  61. #文件系统检查
  62.  
  63. echo "********File System**********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  64.  
  65. df -h >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  66.  
  67. echo "over 75%" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  68.  
  69. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  70.  
  71. df -h |grep '[7-9][5-9]%'>>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  72.  
  73. #网络地址配置信息
  74.  
  75. echo "********System /etc/hosts********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  76.  
  77. cat /etc/hosts >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  78.  
  79. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  80.  
  81. #查看内存使用情况
  82.  
  83. echo "**********mem check************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  84.  
  85. free >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  86.  
  87. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  88.  
  89. vmstat >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  90.  
  91. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  92.  
  93.  
  94.  
  95. #查看磁盘读写情况
  96.  
  97. echo "********io check**********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  98.  
  99. iostat >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  100.  
  101. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  102.  
  103.  
  104.  
  105. #网络检查
  106.  
  107. echo "********network route check**********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  108.  
  109. netstat -rn >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  110.  
  111. echo "********network check**********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  112.  
  113. ifconfig -a >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  114.  
  115. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  116.  
  117.  
  118.  
  119. #环境变量检查
  120.  
  121. echo "********env info****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  122.  
  123. env >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  124.  
  125. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  126.  
  127.  
  128.  
  129. #用户组检查
  130.  
  131. echo "********group info****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  132.  
  133. cat /etc/group >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  134.  
  135. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  136.  
  137.  
  138.  
  139. #用户密码检查
  140.  
  141. echo "********user info****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  142.  
  143. cat /etc/passwd >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  144.  
  145. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  146.  
  147.  
  148.  
  149. #检查操作系统kernel信息
  150.  
  151. echo "********System kernel info****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  152.  
  153. su - root -c $CURRENT_DIR/check_kernel.sh >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  154.  
  155. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  156.  
  157.  
  158.  
  159. #检查操作系统定时任务
  160.  
  161. echo "********System crontab info****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  162.  
  163. crontab -l >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  164.  
  165. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  166.  
  167.  
  168.  
  169. #检查系统裸设备属主
  170.  
  171. echo "******** RAW****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  172.  
  173. ls -l /dev/sd* >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  174.  
  175. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  176.  
  177.  
  178.  
  179. #检查服务器上运行的数据库信息
  180.  
  181. echo "********get oracle info****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  182.  
  183. Instance=`ps -ef|grep -v grep|grep oracle|awk '{print $1}'`
  184.  
  185. for i in ${Instance}
  186.  
  187. do
  188.  
  189. su - $i -c $CHECK_REPORT_PATH/getdbinfo.sh
  190.  
  191. done
  192.  
  193. echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  194.  
  195. echo "#################### Check End! ####################"