W
W
wmlex2016-01-18 11:32:21
linux
wmlex, 2016-01-18 11:32:21

How can a BASH script be improved?

I slightly changed the watchdog script, from this topic , for myself. The script works fine. Can you please tell me how to improve this script?

#!/bin/bash

SITE="ya.ru"    #проверяемый ресурс
IF="wwp6s0u2i1" #имя сетевого интерфейсв
DEV="1-1"       #шина и порт модема lsusb -t
MM="Huawei"     #маркер модема, можно заменить на "Huawei" или подобное из команды lsusb
EP="3"          #число ошибочных пингов

M=`lsusb | grep $MM`  #строка модема из lsusb

if [ "$M" != "" ]; then   #если модем выбран, можно проверять пинги
  echo "Делаем пинги..."
  flag="0"
  for i in {1..5}; do #делаем 5 пингов до сервера
    timeout -k 2 -s TERM 16 ping -w 14 -s 8 -c 1 -I $IF $SITE || flag=$(($flag+1)) && echo "пинг:$i/5 (ош.:$flag)" #пинг не прошел - инкрементируем счетчик
    if [ "$flag" -ge "$EP" ]; then
      break
    else
      sleep 1
    fi
  done
  echo "потерь пакетов: $flag из $i"

  if [ "$flag" -ge "$EP" ]; then #если потерь пакетов больше 2х
    M=`lsusb | grep $MM`   #на всякий случай снова глянем - вдруг модем выдернули
    echo "Будет сброшен модем:"
    echo $M
    ifdown $IF #деактивируем интерфейс 
    sleep 1
    echo $DEV > /sys/bus/usb/drivers/usb/unbind #выключаем питание модема
    sleep 1
    echo $DEV > /sys/bus/usb/drivers/usb/bind #включаем питание модема
    sleep 2
    ifup $IF #активируем интерфейс
  fi
else
  echo "Модем [$MM] не найден."
  lsusb
fi

PS
OS - CentOS 7
Modem - Huawei E3272

Answer the question

In order to leave comments, you need to log in

1 answer(s)
W
wmlex, 2016-01-23
@wmlex

Decision

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question