免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4916 | 回复: 11
打印 上一主题 下一主题

[文本处理] (绝对原创)帮忙看看我的HPUX日常shell巡检脚本怎么样 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-05-10 10:41 |只看该作者 |倒序浏览
本帖最后由 xklyy01 于 2015-05-12 10:00 编辑

各位大神,小弟是HPUX运维工程师新手一枚,

公司里需要巡检的机器不多,为了提升技术,

就拿测试机写了一下日常巡检的shell脚本,

大家看看这个脚本怎么样,帮忙给点意见

目前只能实现单机巡检

不能自动巡检其他机器或发邮件

#!/sbin/sh
#edition 1.0


echo "You are logged in as `whoami` ";
if [ `whoami` != root ]; then
echo "Must be logged on as root to run this script."
exit
fi
CHECK_DATE=`date +%F`
echo "Running script at `date`"
CHECK_REPORT_PATH=/tmp/getinfo
ls -d $CHECK_REPORT_PATH
if [ $? -gt 0 ]
then
mkdir $CHECK_REPORT_PATH
fi
CURRENT_DIR=`pwd`
echo "################check start###################"
#hostname check
Hostname=`hostname`
echo "Hostname Check start,please wait.."
echo "*********Hostname Check**********" > $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo "Hostname is $Hostname" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo  "-------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
#cluster status check
echo "cluster status check start,please wait.."
echo "********cluster status check*****" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
cmviewcl >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo "----------------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
#cpu status check
echo "cpu status check start,please wait.."
echo "********cpu status check********" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
sar -u 4 5 >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo "----------------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
#disk status check
echo "disk status check start,please wait.."
echo "********disk status check********" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
sar -d 4 5 >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo  "----------------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
#swap status check
echo "swap status check start,please wait.."
echo "********swap status check********" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
swapinfo -atm >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo "----------------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
#system uptime check
echo "system uptime check start,please wait.."
echo "********system uptime check********" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
/usr/bin/uptime -s >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo  "----------------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
#FS exeeded 90& usage check
echo "FS exeeded 90& usage check start,please wait.."
echo "***FS exeeded 90& usage check****" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
bdf | awk '{ h=x[split($5,x,"%")-1];if(h>=90) print $0}'  >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo "----------------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
#cpu check
#if you use this script in LINUX environment,you should use" top -n 1"
#if you use this script in HPUX  environment,you should use" top -d 1"
echo "cpu check start,please wait.."
echo "*********cpu check******" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
top -d 1 >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo  "----------------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
#fail syslog check
echo "fail syslog check start,please wait.."
echo "*********fail syslog check******" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
FAIL_LOG=`tail -2000 /var/adm/syslog/syslog.log | grep -i fail`
ls -d $FAIL_LOG
if [ $? -ne 0 ]
then  
  $FAIL_LOG >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
  else
  echo "There is not fail syslog!" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE  
fi
echo  "----------------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
#error syslog check
echo "error syslog check start,please wait.."
echo "*********error syslog check******" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
ERROR_LOG=`tail -2000 /var/adm/syslog/syslog.log | grep -i err`
ls -d $ERROR_LOG
if [ $? -ne 0 ]
then
    $ERROR_LOG >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
  else
  echo "There is not error syslog!" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
  fi
echo  "----------------------------\n" >> $CHECK_REPORT_PATH
/Report_$CHECK_DATE
#event check
echo "event check start,please wait.."
echo "*********event check******" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
EVENT_LOG=`tail -2000 /var/opt/resmon/log/event.log`
  $EVENT_LOG >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo  "----------------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo "##################check end###################"


下面是执行这个脚本后的的前台运行结果

# sh hpcheck1.0.sh
You are logged in as root
Running script at Sun May 10 10:14:26 MDT 2015
/tmp/getinfo
################check start###################
Hostname Check start,please wait..
cluster status check start,please wait..
hpcheck1.0.sh[34]: cmviewcl:  not found. (因为是单台测试机,没有集群,所以边显示not found不奇怪)
cpu status check start,please wait..
disk status check start,please wait..
swap status check start,please wait..
system uptime check start,please wait..
FS exeeded 90& usage check start,please wait..
cpu check start,please wait..
fail syslog check start,please wait..
.
error syslog check start,please wait..
.
event check start,please wait..
hpcheck1.0.sh[96]: >------------:  not found. (这边报错不懂为啥了)
##################check end###################

下面是生成报告的结果

# cat Report_2015-05-10
*********Hostname Check**********
Hostname is rp3440
-------------------

********cluster status check*****
----------------------------

********cpu status check********

HP-UX rp3440 B.11.31 U 9000/800    05/10/15

10:14:26    %usr    %sys    %wio   %idle
10:14:30       0       0       0     100
10:14:34       0       0       0     100
10:14:38       0       0       0     100
10:14:42       0       0       2      97
10:14:46       0       0       0     100

Average        0       0       0      99
----------------------------

********disk status check********

HP-UX rp3440 B.11.31 U 9000/800    05/10/15

10:14:46   device   %busy   avque   r+w/s  blks/s  avwait  avserv
10:14:50    disk3    0.50    0.50       0       4    0.00   11.04
10:14:54    disk3    0.50    0.50       1      12    0.00    7.29
10:14:58    disk3    1.25    0.50       2      40    0.00   13.82
10:15:02    disk3    4.25    0.50       8     138    0.00    7.31
            disk4    0.25    0.50       0       0    0.00    9.69
10:15:06    disk3    0.50    0.50       1      16    0.00    7.56

Average     disk3    1.40    0.50       3      42    0.00    8.68
Average     disk4    0.05    0.50       0       0    0.00    9.68
----------------------------

********swap status check********
             Mb      Mb      Mb   PCT  START/      Mb
TYPE      AVAIL    USED    FREE  USED   LIMIT RESERVE  PRI  NAME
dev        8192       0    8192    0%       0       -    1  /dev/vg00/lvol2
reserve       -     217    -217
memory     5842     840    5002   14%
total     14034    1057   12977    8%       -       0    -
----------------------------

********system uptime check********
10:15am  up 1 day, 23:54,  1 user,  load average: 0.00, 0.00, 0.00
----------------------------

***FS exeeded 90& usage check****
DevFS                    3       3       0  100% /dev/deviceFileSystem
----------------------------

*********cpu check******

System: rp3440                                        Sun May 10 10:15:07 2015
Load averages: 0.00, 0.00, 0.00
140 processes: 105 sleeping, 34 running, 1 zombie
Cpu states:
CPU   LOAD   USER   NICE    SYS   IDLE  BLOCK  SWAIT   INTR   SSYS
0    0.00   0.0%   0.0%   0.0% 100.0%   0.0%   0.0%   0.0%   0.0%
1    0.01   0.0%   0.0%   1.0%  99.0%   0.0%   0.0%   0.0%   0.0%
2    0.00   0.0%   0.0%   0.0% 100.0%   0.0%   0.0%   0.0%   0.0%
3    0.00   0.0%   0.0%   1.0%  99.0%   0.0%   0.0%   0.0%   0.0%
---   ----  -----  -----  -----  -----  -----  -----  -----  -----
avg   0.00   0.0%   0.0%   1.0%  99.0%   0.0%   0.0%   0.0%   0.0%

System Page Size: 4Kbytes
Memory: 150072K (61568K) real, 287700K (132724K) virtual, 4950716K free  Page# 1
/16

CPU TTY  PID USERNAME PRI NI   SIZE    RES STATE    TIME %WCPU  %CPU COMMAND
2   ?    58 root     191 20  1044K  1044K run      2:54  0.68  0.68 vxfsd
1   ?  1752 root     168 20  4792K   824K sleep    0:55  0.38  0.38 utild
2   ?  1410 root     152 20 79696K  7904K run      0:17  0.20  0.20 cimprovagt
1   ?  1407 root     152 20 40684K  9032K run      3:51  0.15  0.15 cimserver
2   ?    60 root     191 20   180K   180K run      0:29  0.14  0.13 pm_schedcpu
1   ?  1401 root     152 20 12892K  2392K run      0:00  0.12  0.12 rpcd
----------------------------

*********fail syslog check******
There is not fail syslog!
----------------------------

*********error syslog check******
There is not error syslog!
----------------------------

*********event check******
----------------------------

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
2 [报告]
发表于 2015-05-10 13:56 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
3 [报告]
发表于 2015-05-10 14:20 |只看该作者
不敢点评啊,不然会被人说光说不做
我只敢点评楼主字体实在太大了

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
4 [报告]
发表于 2015-05-10 14:21 |只看该作者
不敢点评啊,不然会被人说光说不做
我只敢点评楼主字体实在太大了

论坛徽章:
0
5 [报告]
发表于 2015-05-10 14:35 |只看该作者
版主能给些具体的意见吗回复 2# zooyo


   

论坛徽章:
0
6 [报告]
发表于 2015-05-10 14:36 |只看该作者
能给些具体的意见吗回复 3# Windows19


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
7 [报告]
发表于 2015-05-10 15:40 |只看该作者
回复 1# xklyy01

How about this way to creat a common function to check them ...

function check(){
  date >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  echo "$1 Check start, please wait.."
  echo "*********$1 Check**********" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
  $2 >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
  date >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
  echo  -e "-------------------\n" >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
}

echo /dev/null > $CHECK_REPORT_PATH/Report_$CHECK_DATE
#      item      command
check "Hostname" "hostname"
#check "cluster" "cmviewcl"
check "cpu"      "sar -u 4 5"
check "disk"     "sar -d 4 5"
...
   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
8 [报告]
发表于 2015-05-10 16:09 |只看该作者
可以考虑把每个功能点做成一个子函数,例如
CHECK_CPU
CHECK_MEM
CHECK_DISK
......

适当的加一些空行

论坛徽章:
8
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015小元宵徽章
日期:2015-03-06 15:58:18每日论坛发贴之星
日期:2015-06-08 22:20:00每日论坛发贴之星
日期:2015-06-08 22:20:00操作系统版块每日发帖之星
日期:2015-06-14 22:20:00数据库技术版块每日发帖之星
日期:2015-11-09 06:20:00数据库技术版块每日发帖之星
日期:2016-02-22 06:20:0015-16赛季CBA联赛之上海
日期:2017-01-01 23:58:53
9 [报告]
发表于 2015-05-10 17:51 |只看该作者
看上去结果还多啊,好像没有对齐吧。每个功能巡检几个主要参数或者对结果先归纳再打印出来可能比较好, 纯属我个人看法哈。

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
10 [报告]
发表于 2015-05-10 18:23 |只看该作者
回复 6# xklyy01


    不好意思  楼主水平比我高很多很多很多
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP