Страница 1 из 1

Значение переменной

Добавлено: 2013-12-03 12:34:16
xDee
Подскажите пожалуйста. Я пингую сервера по одним 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

Re: Значение переменной

Добавлено: 2013-12-03 21:11:36
lazhu

Код: Выделить всё

awk '$1=="blah_blah_blah"{print $2}'

Re: Значение переменной

Добавлено: 2013-12-03 22:54:36
kpp
В этом случае удобно использовать конструкцию вида:

Код: Выделить всё

while read IP1 IP2
do

 # каждая итерация цикла - новая строка файла
 # в переменных ${IP1} ${IP2} будут первый и второй ИП, соответственно

done  <  "${FILE}"