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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)