`
xitong
  • 浏览: 6158771 次
文章分类
社区版块
存档分类
最新评论

shell脚本实现多台服务器自动巡检

 
阅读更多

摘要:

运维服务一个项目二十多台(或者多台)服务器,每天要做服务器的性能巡检工作是查看服务器的CPU、内存、磁盘空间是否在正常值范围内。像这样每天或者每个固定时间段都做相同的重复工作,为了简化重复的工作,我写了基于liunx服务器的自动巡检脚本,在crontab中设定一个固定时间进行自动执行即可,以减少人工重复劳动的工作。

环境:

我的项目上主要服务器是LINUX和AIX两种服务器,总数在30台左右。现在的工作量是每周巡检两次,都是手动登录到每台服务器使用相应的命令查看服务器性能参数。

思路:

1、所有的服务器之间的网络都是在同一个局域网内,所有网络两两相通。

2、在其中选择一台性能相对较好或者是服务器运行压力较小的服务器,作为巡检服务器。

3、通过这一服务器来实现对其他服务器的巡检,然后把巡检结果记录到巡检服务器上。

4、每台服务器巡检结果都以时间和ip做命名用来区分,最后将所有巡检结果压缩打包。

5、每次维护人员只需要定时去取这个压缩包查看最后结果即可,免去了对每台服务器都需要登录和输入相同的命令进行查看。

具体实现脚本:

#! /bin/bash
echo "start running!" | tee -a
LANG=en
set `date`
path="/home/check"
echo "start running!" | tee -a $path/log/$1-$2-$3.log
if [ -d /home/check/result/$1-$2-$3 ];
then
echo ''
else
mkdir /home/check/result/$1-$2-$3
echo `date +"%Y/%m/%d-%H:%M:%S"` "create " "$1-$2-$3" "directory success !"|tee -a $path/log/$1-$2-$3.log
fi
echo `date +"%Y/%m/%d-%H:%M:%S"` "starting reading linuxconfig.txt !" |tee -a $path/log/$1-$2-$3.log
cat "$path"/config/linuxconfig.txt| while read line;
do
ip=`echo $line |cut -d '=' -f2`
echo `date +"%Y/%m/%d-%H:%M:%S"` "check LINUX " $ip " starting !" |tee -a $path/log/$1-$2-$3.log
(
sleep 1
echo account

sleep 1
echo password

sleep 3
echo "free -k"
echo ""
echo "df -k"
echo ""
#memory_used_rate
echo "ps -ef| grep java"
echo ""
echo "netstat -an|egrep -n '8010|8008|9008|44444|4100'"
echo ""
echo "ifconfig -a"
echo ""
echo "top -n1|sed -n '1,5p'"
echo "exit"
sleep 5
)|telnet $ip >/home/check/result/$1-$2-$3/$ip-$1-$2-$3-$4.txt
echo `date +"%Y/%m/%d-%H:%M:%S"` "check LINUX " $ip " end !" |tee -a $path/log/$1-$2-$3.log
echo "" | tee -a $path/log/$1-$2-$3.log
done
echo `date +"%Y/%m/%d-%H:%M:%S"` "end reading linuxconfig.txt !" |tee -a $path/log/$1-$2-$3.log

echo `date +"%Y/%m/%d-%H:%M:%S"` "starting reading AIXconfig.txt !" | tee -a $path/log/$1-$2-$3.log
cat "$path"/config/AIXconfig.txt| while read line;
do
ip=`echo $line |cut -d '=' -f2`
echo `date +"%Y/%m/%d-%H:%M:%S"` "check IBM AIX " $ip " starting !" |tee -a $path/log/$1-$2-$3.log
(
sleep 1
echo account
sleep 1
echo password

sleep 5
echo ""
echo "df -k"
echo ""
#memory_used_rate
echo "ps -ef| grep java"
echo ""
echo "netstat -an|egrep -n '8010|8008|9008|44444|4100'"
echo ""
echo "ifconfig -a"
echo ""
echo "topas"
echo "exit"
sleep 5
)|telnet $ip >/home/check/result/$1-$2-$3/$ip-$1-$2-$3-$4.txt
echo `date +"%Y/%m/%d-%H:%M:%S"` "check IBM AIX " $ip " end !" |tee -a $path/log/$1-$2-$3.log
echo "" | tee -a $path/log/$1-$2-$3.log
done
echo `date +"%Y/%m/%d-%H:%M:%S"` "end reading AIXconfig.txt !" | tee -a $path/log/$1-$2-$3.log
zip -r /home/check/result/$1-$2-$3/$1-$2-$3.zip /home/check/result/$1-$2-$3/*
echo "End running !"

注意:

该脚本的巡检是基于TELNET服务所以被检服务器必须开启TELNET服务,不然巡检会失败。

分享到:
评论

相关推荐

    用expect实现的自动登录到多台服务器的shell脚本

    代码如下:#!/usr/bin/expect -fset ipaddress [lindex $argv 0]set passwd [lindex $argv 1]set timeout 30spawn ssh root@$ipaddress#expect “yes/no”#send “yesr”expect “password:”send “$passwdr”expect...

    python服务器资源、服务巡检脚本 输出到execl标红

    基于python写的服务器资源巡检程序,每日定时巡检指定服务器资源、服务情况,输出execl,问题故障标红显示等

    Centos7系统巡检.sh

    Centos7系统一件巡检脚本,快速高效获取服务器状态,服务运行状态,密码过期检查等等

    linux 运维自动监测脚本(CPU,内存,磁盘,负载),自测成功

    通过定时 crontab -e 任务,执行脚本,监测服务器的cpu,内存,磁盘,负载,超出预定的值时发邮件到自己的邮箱告警,很好的提前预防服务器的资源紧张问题。

    Shell脚本实现检查服务器安全状态(用户、登录IP、防火墙检查)

    说明:大家平时对Linux服务器安全主要是对系统用户的检查,登陆服务器IP检查,以及防火墙状态检查! 1.需要把正确系统用户名存储在/root/liu_shell/local_user.txt文件中,然后进行比较! 2.对登陆IP判断是不是以192....

    用shell脚本监控进程是否存在 不存在则启动的实例

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/sh ps -fe|grep processString |grep -v grep if [ $? -ne 0 ] then echo start process..... else echo runing..... fi ##### ...

    DBA 监控巡检脚本发邮件,需要先打通mail发邮件

    监控alert log日志出现ora错误,表空间利用率大于90,rac日志,DG OGG 日志,会看懂shell的可以自己更改代码

    Linux运维工作中常用的shell脚本 .zip

    最后,运维工程师还涉及自动化运维体系的建设和完善,通过脚本编写、配置管理工具的运用,实现批量部署、自动巡检、故障自愈等功能,从而提升运维效率,减轻人工压力。 总之,运维工作的核心目标在于保障业务的连续...

    suselinux的健康检查脚本

    suselinux的健康检查脚本,可自动生成健康检查日志文件包括 服务器 ip地址、服务器内核、服务器cpu、内存、服务器进程等内容。其他版本linux需自行修改某些参数

    Docker镜像大礼包.zip

    最后,运维工程师还涉及自动化运维体系的建设和完善,通过脚本编写、配置管理工具的运用,实现批量部署、自动巡检、故障自愈等功能,从而提升运维效率,减轻人工压力。 总之,运维工作的核心目标在于保障业务的连续...

    快捷运维.zip

    最后,运维工程师还涉及自动化运维体系的建设和完善,通过脚本编写、配置管理工具的运用,实现批量部署、自动巡检、故障自愈等功能,从而提升运维效率,减轻人工压力。 总之,运维工作的核心目标在于保障业务的连续...

    AIX优化及维护案

    2.2 IBM AIX服务器巡检流程 99 2.3 超经典的AIX系统管理手册之一(AIX系统的安装) 99 2.4 超经典的AIX系统管理手册之二(AIX操作系统基本命令) 103 2.5 超经典的AIX系统管理手册之三(vi编辑器的使用) 116 2.6 超...

    AIX优化及维护案例2009版

    2.2 IBM AIX服务器巡检流程 99 2.3 超经典的AIX系统管理手册之一(AIX系统的安装) 99 2.4 超经典的AIX系统管理手册之二(AIX操作系统基本命令) 103 2.5 超经典的AIX系统管理手册之三(vi编辑器的使用) 116 2.6 超...

    aix 优化及维护案例

    2.2 IBM AIX服务器巡检流程 99 2.3 超经典的AIX系统管理手册之一(AIX系统的安装) 99 2.4 超经典的AIX系统管理手册之二(AIX操作系统基本命令) 103 2.5 超经典的AIX系统管理手册之三(vi编辑器的使用) 116 2.6 超...

Global site tag (gtag.js) - Google Analytics