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 "
n
n| IP | align="left">时间 | 响应时间 | align="left">当天报告 | 历史报告 |
|---|
" >> /var/www/html/
# 判断是否含有IP字段,没有的话,第一次向网页里写入网页内容,生成一张DO Ping 实时报告的网页表格
cat /var/www/html/ | grep -q $ || sed -i '$i
href=/'"$Cip"'/'"$Day"'.html>当天报告
# 判断是否含有读取到的ip地址,没有的话,向网页里写入ip地址和ping的结果,生成实时报告,以绿色展示
sed -i '/'"$Cip"'.html/s/<.*>/
# 修改读取到的ip地址行里面的内容,修改为最新取到的值
sed -i '/
# 如果网页里有-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 "
n
n| IP | align="left">时间 | 响应时间 | align="left">返回首页 |
|---|
2
# 判断日期网页里是否含有IP字段,没有的话,第一次向日期网页里写入网页内容,生成一张日期报告的网页表格
cat /var/www/html/$Cip/$ | grep -q $Time || sed -i '6i
# 判断日期网页是否含有读取到的时间,没有的话,向日期网页里写入ip地址,取到的时间和ping的结果,生成日期报告,以绿色展示
sed -i '/
# 如果日期网页里有-1字段,则将该行修改为红色
ls /var/www/html/$Cip | grep -q $ || touch /var/www/html/$Cip/$
# 生成读取到的ip地址对应的历史网页,用于快速查看所有日期取到的值
cat /var/www/html/$Cip/$ | grep -q IP || echo -e "
n
n| IP | align="left">日期 | 查看报告 | align="left">返回首页 |
|---|
/var/www/html/$Cip/$
# 判断历史网页里是否含有IP字段,没有的话,第一次向历史网页里写入网页内容,生成一张历史报告的网页表格
cat /var/www/html/$Cip/$ | grep -q $Day || sed -i '6i
href=../>返回首页
# 判断历史网页是否含有读取到的日期,没有的话,向历史网页里写入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


发布评论