栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Shell脚本实现网络定期检查,并将网络状态写到日志文件中

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Shell脚本实现网络定期检查,并将网络状态写到日志文件中

  Shell脚本实现网络定期检查,查询到网络失败重启网卡,Shell脚本实现网络定期检查

#!/bin/bash

network_log_file_name=/home/root/network_status.log                # 网络日志文件
network_log_backup_file_name=/home/root/network_status_backup.log  # 网络日志备份文件 
network_log_max_size=(512)  # 限制log文件的大小,单位是字节

nic="eth0"
ip="10.10.51.1"  # ping的IP
poll_intervel=5  # ping的间隔, 单位是秒


while true
do
	sleep $poll_intervel

	# 发送ping命令测试网络状态, 发送5次, 超时时间为1s, 默认发送间隔为1s
	lost_rate=`ping -c 5 -W 1 $ip | grep 'packet loss' 
				| awk -F 'packet loss' '{ print $1 }' 
					| awk '{ print $NF }' | sed 's/%//g'`
 
	# 获取系统时间
	time="`date '+%Y-%m-%d %H:%M:%S'`"

	echo $lost_rate
	if [ $lost_rate -lt 100 ]
	then
		echo "$time, $ip $nic, loss_rate=$lost_rate" >> $network_log_file_name
	else
		echo "$time, $ip $nic, lost_rate=$lost_rate, restart network" >> $network_log_file_name

		ifconfig $nic down # 卸载网卡
		sleep 1
        ifconfig $nic up   # 重新加载网卡
        sleep 5
	fi

	# 获取文件大小,单位是字节
	file_size=`ls -l $network_log_file_name | awk '{print $5}'` # 获取文件大小,单位是字节
	if [ $file_size -gt $network_log_max_size ] # 文件大小超过了限定的大小
	then
		if [ -f $network_log_backup_file_name ] # 如果备份文件存在
		then
			rm $network_log_backup_file_name
		fi
			
		cp $network_log_file_name $network_log_backup_file_name  # 将日志文件备份
        rm $network_log_file_name #删除超过限定大小的日志文件
	fi
done

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/460969.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号