Сегодня возникла задача пропинговать все адреса в локальной сети и посмотреть время пинга до каждого.
Для этого решил написать простенький скрипт:
#!/bin/bash
echo 'введите первые 3 байта сети в формате 0.0.0 и количество посылаемых пинг пакетов на компьютер'
MAXPARAMS=3
#Если вызывается скрипт без параметров или с ошибочным количеством параметров то идет объяснение как его использовать
if [ $# -lt "$MAXPARAMS" ];
then
echo
echo "Использование: `basename $0` [количество пингов] [первые 3 байта сети в формате 0.0.0] [файл вывода]"
echo
exit 0
fi
# Ругаемся если параметров слишком много
if [ $# -gt "$MAXPARAMS" ];
then
echo
echo "Для этого скрипта нужно только $MAXPARAMS аргумента командной строки!"
echo
exit 0
fi
#перечисляем переменные
HOW=$1 # количество пингов на каждый комп
IPRANGE=$2 # первые 3 байта сети
OUTFILE=$3 # файл куда будем писать лог
COUNTER=1 #счетчик 1..254
# запускаем цикл подстановки 1..254 в команду пинг
while [ $COUNTER -lt 255 ]
do
echo 'now ping '$IPRANGE'.'$COUNTER #пишем какой компьютер пингуется в данный момент
ping '-c' $HOW $IPRANGE'.'$COUNTER>>$OUTFILE #непосредственно пинг
let COUNTER=COUNTER+1 #увеличиваем счетчик на 1
done
В принципе в этом скрипте есть все пояснения к нему, но предупрежу что скрипт не проверяет что именно было введено в качестве параметров, так что будте аккуратны при вводе параметров.
Заказать создание и поддержку безопасной IT-инфраструктуры любой сложностиБыть уверенным в своей IT-инфраструктуре – это быть уверенным в завтрашнем дне. Для того, чтобы сделать заказ:
|