检测网段IP使用情况的shell脚本_linux shell

复制代码 代码如下:

#!/bin/bash
#main---
network=192.168.1
ping_count=3
IP=1
:>IP_use
:>IP_idle
:>ping_action
echo "`date "+%Y%m%d %H:%M:%S"`----->脚本开始执行......"
while [ $IP -lt 255 ]
do
host=$network.$IP
echo "-------->开始检测$host服务器通迅是否正常,ping次数$ping_count."
ping $host -c $ping_count  >.ping_tmp
sleep 1
cat .ping_tmp  >>ping_action
echo "-------->服务器$host检测已完成."
sum_ping=`tail -2 .ping_tmp |head -1 |awk -F, '{print$2}' |cut -c 2-2`
loss_ping=`tail -2 .ping_tmp |head -1 |awk -F, '{print$4}'|cut -c 2-5`
if [ $sum_ping -eq $ping_count ];then
    echo "-->$host  IP 已经在使用中"
    echo "-->$host  IP 已经在使用中"  >>IP_use
  else
    echo "$host IP 目前空闲:$loss_ping"
    echo "$host IP 目前空闲"  >>IP_idle
fi
IP=$((IP+1))
done
echo "`date "+%Y%m%d %H:%M:%S"`----->脚本运行完毕......"

要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下:

脚本1

复制代码 代码如下:

#!/bin/sh
# Ping网段所有IP
# 2012/02/05
ip=1 #通过修改初值
while [ $ip != "254]; do
#yes正常,no主机不存在或不正常
ping 192.168.0.$ip -c 2 | grep -q "ttl=" && echo "192.168.0.$ip yes" || echo "192.168.0.$ip no"
ip=`expr "$ip" "+" "1"`
done

输出结果:
192.168.0.1 yes
192.168.0.2 no
192.168.0.3 no
192.168.0.4 no
192.168.0.5 yes
192.168.0.6 no
192.168.0.7 yes
...

脚本2

复制代码 代码如下:

#!/bin/sh
# Ping网段所有IP
# 2012/02/05
ip="192.168.0."
for i in `seq 1 254`
do
ping -c 2 $ip$i | grep -q 'ttl=' && echo "$ip$i yes"|| echo "$ip$i no"
#yes正常,no主机不存在或不正常
done

输出结果:
192.168.0.1 yes
192.168.0.2 no
192.168.0.3 no
192.168.0.4 no
192.168.0.5 yes
192.168.0.6 no
192.168.0.7 yes
...

时间: 2024-10-22 16:20:13

检测网段IP使用情况的shell脚本_linux shell的相关文章

自动化下载并检测ftp文件备份的shell脚本_linux shell

实现代码: #!/bin/bash #ftime0=$(ll /root/hbshell/down.txt | awk '{print $7}') #ftime1=$(ll /root/hbshell/down.txt | awk '{print $7}') touch /root/hbshell/down.txt while : do if [[ /root/hbshell/down.txt -nt /root/hbshell/down_cp.txt ]] then user=root pas

一键备份gitolite服务器的Shell脚本_linux shell

运行一次就能够把gitolite服务器上的仓库备份到本地. 第一次运行会创建远程仓库的本地镜像, 以后每次运行会把本地镜像更新. 本程序只支持 ssh方式 其他的git server貌似不会在 ssh git@xxx 的时候返回repo列表, 所以只能手动备份. #!/bin/sh server=serv_addr root_dir=`pwd` echo "whill back in dir: ${root_dir}" ssh "git@${server}" | a

Linux下实现SNMP一键安装的Shell脚本_linux shell

Net-SNMP是一个免费的.开放源码的SNMP实现,以前称为UCD-SNMP.SNMP 很多都用其安装之后,作为监控宝和阿里云的系统信息监控使用.下面就来分享linux下实现SNMP一键安装的shell脚本: #!/usr/bin/env bash export LC_ALL=C if [ "$(id -u)" != "0" ] then echo "This script. must be run as root" 1>&2 e

使用iconv批量改变文件编码的shell脚本_linux shell

这篇文章主要介绍了编写shell脚本,使用iconv批量改变文件编码的脚本代码,需要的朋友可以参考下. 用法示例: cd ~/workspace/XXXProject ~/iconv_shell.sh ./ *java 好了,直接上代码~~ #!/bin/bash if [ "$#" != "2" ]; then echo "Usage: `basename $0` dir filter" exit fi dir=$1 filter=$2 ech

用来检测输入的选项$1是否在PATH中的shell脚本_linux shell

今天无意中发现一本挺有意思的shell编程的书,是e文的,内容是101个shell案例,坚持明天看一个,写点心得. 下面是例子001: #!/bin/sh # inpath - Verifies that a specified program is either valid as is, # or that it can be found in the PATH directory list. in_path() { # Given a command and the PATH, try to

阿里云云服务器Linux系统更新yum源Shell脚本_linux shell

所有执行的脚本都需要root身份来执行,执行方法:以root身份执行命令:bash xxx.sh 功能:自动检测系统并更新源 适用系统版本:兼容线上所有linux版本 执行方法:以root身份执行命令:bash update_source.sh 解决了什么问题:一键式检测系统并更新源 给客户带来了好处:用户只需执行该脚本一次即可自动检测系统并更新源. 备注:由于系统版本都有支持的周期所以部分源可能会出现不可用的情况,包括官方的源,这是正常情况 #!/bin/bash ##############

分享个简易版Linux服务器初始化Shell脚本_linux shell

该Shell脚本主要用于新安装Linux服务器系统的初始化工作,具体包括: 关闭IPv6模块 关闭SELinux 让vim显示颜色 设置系统语言编码 优化系统服务 内核参数优化等. 可以根据自己的实际情况修改,可用于生产环境.原作者是NetSeek,本人做了部分修改. 复制代码 代码如下: #!/bin/sh # desc: lsm03624 modified by www.webnginx.com #-------------------cut begin-------------------

linux下mysql如何自动备份shell脚本_linux shell

Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库.其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令. #!/bin/bash # Shell script to backup MySql database # To backup Nysql databases file to /backup dir and later pick up by your # script. You can s

Linux下查找后门程序 CentOS 查后门程序的shell脚本_linux shell

每个进程都会有一个PID,而每一个PID都会在/proc目录下有一个相应的目录,这是linux(当前内核2.6)系统的实现. 一般后门程序,在ps等进程查看工具里找不到,因为这些常用工具甚至系统库在系统被入侵之后基本上已经被动过手脚(网上流传着大量的rootkit.假如是内核级的木马,那么该方法就无效了). 因为修改系统内核相对复杂(假如内核被修改过,或者是内核级的木马,就更难发现了),所以在/proc下,基本上还都可以找到木马的痕迹. 思路: 在/proc中存在的进程ID,在 ps 中查看不到

智能监测自动重启Apache服务器的Shell脚本_linux shell

由于需要监控某些要求高可用性的Apache服务器,除了专业的监控报警设备,低成本下在Apache服务器上写一个自动监测Apache状态的脚本是个不错的主意.在网上搜索了许多类似的脚本,但由于局限性较大,也都存在一些不完善的地方,所以自己写了一个. 脚本功能与特点 1.能够每隔一段时间监测Apache服务器的可用性(由于本脚本直接模拟了客户端的访问,因此这里的"可用性"是指切切实实的正常可访问) 2.在出现无法访问的情况下,能够自动重启Apache服务(强行重启) 3.在重启后仍然无法正