shell脚本实现机房服务器巡检(初步)

前言:

C语言有一定功底的同学能很快上手linux下的shell脚本应用。以下脚本以应用ping以检测机房机架上个服务器的连通性。并配以必要的注解

新建一个shell脚本的简单流程:

#vim filename.sh            新建并编辑脚本

#chmod +x filename.sh       赋予脚本文件执行权限

#./filename.sh              执行脚本

例子:

ping.sh

#!/bin/bash  
#    
PING() {                                                #声明一个函数PING,重复利用

if ping -c 1 -W 1 $1 &> /dev/null; then    #ping一次某ip,等待时间为一秒。此处直接使用命令返回值作为判定条件。一秒内收到返回值则if判定的条件为真,否则为假。

echo "$1 is online."

else

echo "$1 is down!!!!!"  
fi

}

while true; do                                      #利用while的无限循环来持续输出巡检结果。

for I in {100..129}; do                         #巡检连续的ip  
{    
PING 192.168.89.$I                             #此处为函数调用处,重复利用了PING函数。‘192.168.89.$I’作为PING()函数的参数($1=192.168.89.$I)    
sleep 0.5                                            #输出结果后睡眠半秒,给用户一个查看时间。    
}    
       done

for I in {89.243,40.1,42.1,49.1,47.1,60.1,54.1,56.1,44.1,42.3,78.1,78.9,222.222}; do   #处理不连续的ip段    
{    
PING 192.168.$I    
sleep 0.5    
}    
    done

#下面一行为完成一次shell的巡检后,给予用户的信息反馈

echo "Finish!  PING process will restart 10 secomd later..    
If you want to exit ,click  Ctrl + Z    
    "    
sleep 10    
done

进阶版本:

serping.sh

#!/bin/bash  
#    
PING() {

if ping -c 1 -W 1 $1 &> /dev/null; then

echo "$1 is online."

else

echo "$1 is down!!!!!"  
fi

}

while true; do

for I in {‘501E‘,2.{2,4,5},1.123,14.60,1.30,1.23,2.20,‘301F‘,12.{8,5,6,7,3,2},‘502A‘,1.124,0.20,1.{20,25},‘502B‘,1.16,13.2,14.13,3.4,1.10,0.205,16.7,‘502C‘,1.42,16.{4,9,6},13.{4,1},1.24,13.7,16.8,‘502D‘,13.5,1.15,3.29,14.14,3.1,14.{4,7,11,12}}; do        #机架名称和ip字符放在for循环里,连续的ip段使用{}简化表示  
{    
if [ ${I:0:3} == ‘502‘ -o ${I:0:3} == ‘501‘ ];then    #取字符前面三位数比较,如果为50X,则是机架号,直接输出机架号    
{    
echo $I    
continue       #提前结束本次for循环    
}    
else    
{    
PING 192.168.$I    
sleep 0.5    
}    
fi    
}    
    done

echo "  
Finish!  PING process will restart 10 secomd later..    
If you want to exit ,click  Ctrl + Z    
    "    
sleep 10    
done

多学shell例子,就可以融会贯通了。

有兴趣的同学可以复制粘贴到shell脚本中测试。

时间: 2024-11-08 21:00:31

shell脚本实现机房服务器巡检(初步)的相关文章

使用shell脚本监控少量服务器并发送微信告警信息

01. 概括 1.0 脚本更新地址Git更新地址:shell_monitor_script.sh文章原文地址:使用shell脚本监控少量服务器并发送微信告警信息 1.1 前提:平台系统:linux系统下接收信息:微信企业号 1.2 脚本说明需要修改微信接口脚本对应参数的修改:包括IP,告警阈值等 1.3 脚本使用该脚本监控包括Disk.CPU.MEM.LOAD等主机资源,以及docker服务和docker容器.将该脚本附件假定放于:/home/mai/.check_host.sh.那么在定时任务

Centos开机自动执行shell脚本启动tomcat服务器

有时候需要在Centos系统启动之后自动完成项目的启动,项目部署在tomcat中时,如果Centos关机后开机,各个项目也就已经被停掉了,然后需要自己一个一个的手动去开启各个项目对应的tomcat服务器,想想都比较麻烦,那么如何才能实现,当Centos启动之后,项目就自动也跟着启动了呢? 下面就介绍下Centos如何开机是自动启动shell脚本,通过shell脚本的命令来启动项目对应的tomcat服务器. 一.切换到/etc/init.d目录下 cd /etc/init.d 二.制作sh脚本:v

Shell 脚本笔记01-tftp服务器自动下载调试

由于工作上要反复从PC上交叉编译好应用程序,并通过tftp下载到ZYNQ板子上进行运行调试.重复敲命令过于麻烦,所以编写一个脚本实现自动下载,改权限和运行功能. 一.准备工作 将ZYNQ7000开发板和主机端(PC或虚拟机)连接到同一网段. 主机端安装好tftpd-hpa服务器和xinet.d,启动运行 [email protected]:~$ sudo service xinetd restart #开启xinetd服务 [sudo] password for z: xinetd stop/w

shell 脚本获取远程服务器信息并发送邮件

1 [[email protected] expect]# cat ssh_dsa.exp 2 #!/usr/bin/expect 3 set ip [lindex $argv 0] 4 set pass [lindex $argv 1] 5 set port [lindex $argv 2] 6 set user [lindex $argv 3] 7 set id_dsa [lindex $argv 4] 8 9 if { $id_dsa == "1" } {set id "

shell脚本远程查看服务器运行时间(不切换到远程服务器上)

sshpass工具 sshpass可以yum安装或者下载源码包安装 -p:指定ssh的密码 -o StrictHostKeyChecking=no 避免第一次登录出现公钥检查. #!/bin/bash /usr/bin/sshpass -p linux ssh -o StrictHostKeyChecking=no [email protected] uptime|grep up |awk '{print $3}'|sed 's/,//'

用shell脚本实现企业日常巡检

#!/bin/bash function system(){echo "##########系统信息##########"OS_TYPE=unameOS_VER=cat /etc/redhat-releaseOS_KER=uname -a|awk '{print $3}'OSTIME=`date +%F%T<br/>OS_RUN_TIME=uptime |awk '{print $3}'|awk -F, '{print $1}'<br/>OS_LAST_REBO

使用C#给Linux写Shell脚本

在这个逼格决定人格,鄙视链盛行的年头,尤其是咱们IT界,请问您今天鄙视与被鄙视的次数分别是多少?如果手中没有一点压箱的本事,那就只有看的份了.今天我们也要提升下自己的格调,学习些脑洞大开的东西,学完之后跑去群子了威吓其他群友,不就是个玩嘛,走着~~! 说起Linux中的脚本,毋庸置疑,用得最多的肯定是Shell脚本,其他的还有Python.Ruby等,估计根本没有人会想到其实C#也可以.说起C#,那可是尚方宝剑版存在,它上可写操作系统(CosmosOS.SharpOS等)下可写应用系统,桌面程序

服务器巡检shell脚本,python生成excel文档并邮件发出

背景及思路: 五一小长假之前,公司要求我做一次服务器巡检. 1.写了一个简单的脚本获取服务器的各种基础信息:cpu,内存,swap分区使用情况,磁盘,网卡信息种种,具体见脚本,将这些信息追加到一个文件中,然后在监控机上做一次汇总,汇总方式就不详谈,我用的是for循环ssh追加 2.然后利用python的xlsxwriter模块生成excel 3.最后利用python发带附件为excel的邮件到指定邮箱 获取服务器信息部分脚本: #取所需要的内网IP Int_ip=`ifconfig|awk '/

shell + python 服务器巡检,生成excel巡检报告

需求:过百台服务器需要巡检,考虑到人工巡检太浪费时间,于是写了如下脚本,每天定时统计各服务器资源使用情况,统一汇总到一台服务器,进行合并.转换excel 1.shell脚本统计系统资源使用情况,,根据阈值判断是否正常,生成txt文件 1 #!/bin/bash 2 #获取主机名 3 system_hostname=$(hostname | awk '{print $1}') 4 5 #获取服务器IP 6 system_ip=$(ifconfig eth0 |awk -F '[ :]+' 'NR=