Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
xDee
- проходил мимо
- Сообщения: 3
- Зарегистрирован: 2013-03-15 12:20:58
Непрочитанное сообщение
xDee » 2013-12-03 12:34:16
Подскажите пожалуйста. Я пингую сервера по одним IP, а в зону нужно добавить по привязке к другому, т.е. есть текстовой файл в котором есть эти привязки в виде :
172.20.2.1 10.100.100.1
172.20.2.2 10.100.100.2
172.20.2.3 10.100.100.3
Как переменную $i сопоставить с ip в первой колонке, а в зону внести данные из второй колонки ? Подозреваю что нужно использовать awk или grep, но вот саму конструкцию не представляю.
Код: Выделить всё
#!/bin/sh
FILE="file_ip.txt"
for i in 172.20.2.1 172.20.2.2 172.20.2.3;
do
if eval "ping -c 2 $i"> /dev/null;
then
file="/tmp/ping/file`echo $i`"
if [ -e $file ];
then
rm "/tmp/ping/file`echo $i`"
echo "vpn 0 IN A $i" >>/etc/bind/db.local # Вот здесь должна быть другая переменная
echo "$(date +%d-%m-%y\ %H:%M:%S) resumption of rotation $i " >>/var/log/bad_ip.log
fi
echo "11" > /dev/null
else
file="/tmp/ping/file`echo $i`"
if [ -e $file ];
then
echo "11" > /dev/null
else
sed -i "/vpn 0 IN A $i/d" /etc/bind/db.local
touch "/tmp/ping/file`echo $i`"
echo "$(date +%d-%m-%y\ %H:%M:%S) detected BAD IP $i, delete of zone " >>/var/log/bad_ip.log
fi
fi
done
rndc reload
xDee
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
lazhu
- сержант
- Сообщения: 254
- Зарегистрирован: 2013-08-10 14:28:38
-
Контактная информация:
lazhu
-
kpp
- лейтенант
- Сообщения: 613
- Зарегистрирован: 2009-08-05 16:10:46
- Откуда: Украина Днепропетровск-Киев
-
Контактная информация:
Непрочитанное сообщение
kpp » 2013-12-03 22:54:36
В этом случае удобно использовать конструкцию вида:
Код: Выделить всё
while read IP1 IP2
do
# каждая итерация цикла - новая строка файла
# в переменных ${IP1} ${IP2} будут первый и второй ИП, соответственно
done < "${FILE}"
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.
kpp