2024年1月12日发(作者:)

通过网页查看Ping的状态

前期准备

使用CentOS-6.4-x86_镜像文件安装操作系统,ip地址为192.168.0.100

yum -y update

yum -y install httpd ntpdate

ntpdate

service httpd start

chkconfig httpd on

iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

service iptables save

编写脚本

vi

输入被监控的服务器ip地址,如

101.4.63.1

101.4.63.2

101.4.63.3

101.4.63.4

101.4.63.5

101.4.63.6

101.4.63.100

101.4.63.10

8.8.8.8

114.114.114.114

202.38.64.1

vi

输入以下脚本内容:

for Cip in $(cat )

# 读取被ping的IP地址

do

1

# 开始循环

Day=$(date +%F)

# 获取系统日期

Time=$(date +%T)

# 获取系统时间

Icmp=$(ping -c1 -w1 $Cip | grep -q ttl && echo $(ping $Cip -c1 -w1 | grep ttl | awk '{print

$7}' | awk -F "=" '{print $2}') || echo "-1")

# 获取ping的响应时间,如果不通则显示值为-1

ls /var/www/html | grep -qw || touch /var/www/html/

# 生成/var/www/html/网页

cat /var/www/html/ | grep -q IP || echo -e " DO Ping

n n

border="1" Width="100%" style=color:white > n

n n

DO Ping 实时报告

IP

align="left">时间

响应时间

align="left">当天报告

历史报告

" >> /var/www/html/

# 判断是否含有IP字段,没有的话,第一次向网页里写入网页内容,生成一张DO Ping 实时报告的网页表格

cat /var/www/html/ | grep -q $ || sed -i '$i

'"$Cip"' '"$Time"' '"$Icmp"'

href=/'"$Cip"'/'"$Day"'.html>当天报告 历史报告 ' /var/www/html/

# 判断是否含有读取到的ip地址,没有的话,向网页里写入ip地址和ping的结果,生成实时报告,以绿色展示

sed -i '/'"$Cip"'.html/s/<.*>/ '"$Cip"' '"$Time"'

'"$Icmp"' 当天报告

href='"$Cip"''"$Cip"'.html>历史报告 /g' /var/www/html/

# 修改读取到的ip地址行里面的内容,修改为最新取到的值

sed -i '/-1/s/green/red/g' /var/www/html/

# 如果网页里有-1字段,则将该行修改为红色

ls /var/www/html | grep -qw $Cip || mkdir /var/www/html/$Cip

# 生成读取到的ip地址文件夹,用于保存该ip地址的相关网页

ls /var/www/html/$Cip | grep -q $ || touch /var/www/html/$Cip/$

# 生成读取到的ip地址对应的日期网页,用于保存和查看当天所取到的所有值

cat /var/www/html/$Cip/$ | grep -q IP || echo -e " DO Ping

n n

border="1" Width="100%" style=color:white> n

n n

$Cip:$Day 报告

IP

align="left">时间

响应时间

align="left">返回首页

" >> /var/www/html/$Cip/$

2

# 判断日期网页里是否含有IP字段,没有的话,第一次向日期网页里写入网页内容,生成一张日期报告的网页表格

cat /var/www/html/$Cip/$ | grep -q $Time || sed -i '6i

'"$Cip"' '"$Time"' '"$Icmp"' 返回首页 ' /var/www/html/$Cip/$

# 判断日期网页是否含有读取到的时间,没有的话,向日期网页里写入ip地址,取到的时间和ping的结果,生成日期报告,以绿色展示

sed -i '/-1/s/green/red/g' /var/www/html/$Cip/$

# 如果日期网页里有-1字段,则将该行修改为红色

ls /var/www/html/$Cip | grep -q $ || touch /var/www/html/$Cip/$

# 生成读取到的ip地址对应的历史网页,用于快速查看所有日期取到的值

cat /var/www/html/$Cip/$ | grep -q IP || echo -e " DO Ping

n n

border="1" Width="100%" style=color:white> n

n n

$Cip:历史报告

IP

align="left">日期

查看报告

align="left">返回首页

" >>

/var/www/html/$Cip/$

# 判断历史网页里是否含有IP字段,没有的话,第一次向历史网页里写入网页内容,生成一张历史报告的网页表格

cat /var/www/html/$Cip/$ | grep -q $Day || sed -i '6i '"$Cip"'

'"$Day"' 查看报告

href=../>返回首页 ' /var/www/html/$Cip/$

# 判断历史网页是否含有读取到的日期,没有的话,向历史网页里写入ip地址,当前日期以及链接,生成历史报告,以绿色展示

done

# 结束循环

sh

运行该脚本,可以通过访问192.168.0.100,查看到生成的网页

定时运行

echo "*/10 * * * * sh /root/" >>/var/spool/cron/root

3

多个IP设置

vi

for SZ in $(cat 254)

do

touch /etc/sysconfig/network-scripts/ifcfg-eth0:$SZ

echo -e

"DEVICE=eth0:$SZnIPADDR=192.168.0.$SZnNETMASK=255.255.255.0nONBOOT=yes" >

/etc/sysconfig/network-scripts/ifcfg-eth0:$SZ

done

service network restart

vi

I=192.168.56

for ((P=1;P<=10;P++))

do

IP=$I.$P

touch /etc/sysconfig/network-scripts/ifcfg-eth0:$P

echo -e "DEVICE=eth0:$PnIPADDR=$IPnNETMASK=255.255.255.0nONBOOT=yes" >

/etc/sysconfig/network-scripts/ifcfg-eth0:$P

done

/etc/rc.d/init.d/network restart

多个user设置

cat

for user in $(cat user | awk '{print $1}')

do

cat /etc/passwd | grep -qw $user || useradd $user

passwd=$(cat user |grep -w $user | awk '{print $2}')

echo $passwd | passwd --stdin $user

done

DHCP地址变静态

vi

4

ip=$( /sbin/ifconfig eth0 | grep "inet addr" | awk '{print $2}' | awk -F ":" '{print $2}')

echo -e

"DEVICE=eth0nONBOOT=yesnBOOTPROTO=staticnIPADDR=$ipnNETMASK=255.255.255.0nGATEWAY=192.168.200.254nDNS1=8.8.8.8" > /etc/sysconfig/network-scripts/ifcfg-eth0

/etc/rc.d/init.d/network restart

多个DHCP地址变静态

cat

for ip in $(cat | awk '{print $1}')

# 获取服务器IP地址

do

Passwd=$(cat | grep -w $ip | awk '{print $2}')

# 获取服务器root密码

expect <

# 使用expect命令来执行linux下的命令行交互任务,解决ssh需要输入密码的困难

set timeout 30

spawn ssh root@$ip

expect {

"(yes/no)?"

{

send "yesn"

expect "password:" { send "$Passwdn"}

}

# 如果需要输入yes/no,则输入yes和回车,如果需要输入password,则输入密码

"password:"

{

send "$Passwdn"

}

# 如果只需要输入password,则输入密码

}

expect "]"

send "echo -e

"DEVICE=eth0nONBOOT=yesnBOOTPROTO=staticnIPADDR=$ipnNETMASK=255.255.255.0nGATEWAY=192.168.200.254nDNS1=8.8.8.8" >

/etc/sysconfig/network-scripts/ifcfg-eth0 n /etc/rc.d/init.d/network restart n exit n"

# 登录到远程,使用想关命令取值,注意很多特殊符号要在前面加上转义

expect eof

EOF

done

5

查找后拷贝

for A in $(find /home/ -name )

do

B=$(echo $A | sed 's//-/g' | sed 's/-home -images-//')

cp $A /root/$B

done

tar -cvx /root/*

tar [-cxtzjvfpPN] 文件与目录 ....

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

tar -cvf /tmp/ /etc<==仅打包,不压缩!

tar -zcvf /tmp/ /etc<==打包后,以 gzip 压缩

tar -jcvf /tmp/2 /etc<==打包后,以 bzip2 压缩

十点后文件是否存在

if [ "$(date +%H)" -lt "10" ] ; then echo timeing ; else ls -l /data/ | grep -qw $(date

+%F). && echo yes ; fi

6