URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10193
[ Назад ]

Исходное сообщение
"Добавление IP адресов и имен в переменную из файла"

Отправлено Saamuel , 26-Дек-17 12:36 
Здравствуйте,

Необходимо написать скрипт который бы добавлял параметры в переменные из файла.
Скрипт добавляет ДНС записи в яндекс.

#!/bin/bash

NAME="100"
DOMAIN="domain.ru"

ip1="192"
ip2="168"
ip3="1"
ip4="224"

let "ipM = $ip4 + 1"
let "ipC = $ip4 + 2"

M=`echo $ip1.$ip2.$ip3.$ipM`
NAME_M="$NAME"mk

C=`echo $ip1.$ip2.$ip3.$ipC`
NAME_C="$NAME"cs

curl -H "PddToken: 00000000000000000000000" -d "domain=$DOMAIN&type=A&subdomain=$NAME_M&ttl=14400&content=$M" "https://pddimp.yandex.ru/api2/admin/dns/add"
curl -H "PddToken: 00000000000000000000000" -d "domain=$DOMAIN&type=A&subdomain=$NAME_C&ttl=14400&content=$C" "https://pddimp.yandex.ru/api2/admin/dns/add"

В таком виде скрипт отрабатывает нормально для одного филиала. Но проблема в том что таких филиалов более 500.

Помогите доработать скрипт чтоб подставлялись значения для переменных NAME и IP из файла.

Содержимое файла NAME:
100;192.168.0.1/24
101;192.168.1.1/24
102;192.168.2.1/24
103;192.168.3.1/24
104;192.168.4.1/24


Содержание

Сообщения в этом обсуждении
"Добавление IP адресов и имен в переменную из файла"
Отправлено Andrey Mitrofanov , 26-Дек-17 13:52 
> M=`echo $ip1.$ip2.$ip3.$ipM`
> C=`echo $ip1.$ip2.$ip3.$ipC`

Глаз режет. :/

M="$ip1.$ip2.$ip3.$ipM"
C="$ip1.$ip2.$ip3.$ipC"

"$ip1.$ip2.$ip3" можно в какой ни то PFX= положить.


> Помогите доработать скрипт чтоб подставлялись значения для переменных NAME и IP из
> файла.
> Содержимое файла NAME:
> 100;192.168.0.1/24
> 101;192.168.1.1/24
> 102;192.168.2.1/24
> 103;192.168.3.1/24
> 104;192.168.4.1/24

while IFS=. read ip1 ip2 ip3 drop_anything_else; do
   [ "$drop_anything_else" ] || continue
   ip4=224

   ...

done <./FILE


"Добавление IP адресов и имен в переменную из файла"
Отправлено Saamuel , 26-Дек-17 14:45 
>[оверквотинг удален]
>> 100;192.168.0.1/24
>> 101;192.168.1.1/24
>> 102;192.168.2.1/24
>> 103;192.168.3.1/24
>> 104;192.168.4.1/24
> while IFS=. read ip1 ip2 ip3 drop_anything_else; do
>    [ "$drop_anything_else" ] || continue
>    ip4=224
>    ...
> done <./FILE

Спасибо за ваш ответ, а не могли бы вы привести пример скрипта полностью, в программировании вообще не силен.



"Добавление IP адресов и имен в переменную из файла"
Отправлено ыы , 26-Дек-17 22:07 
>[оверквотинг удален]
>>> 102;192.168.2.1/24
>>> 103;192.168.3.1/24
>>> 104;192.168.4.1/24
>> while IFS=. read ip1 ip2 ip3 drop_anything_else; do
>>    [ "$drop_anything_else" ] || continue
>>    ip4=224
>>    ...
>> done <./FILE
> Спасибо за ваш ответ, а не могли бы вы привести пример скрипта
> полностью, в программировании вообще не силен.

Люди обычно, если понимают что не сильны в некой предметной области - либо не берутся за работу требующую специальных знаний, либо обращаются к высококвалифицированным специалистам, рабочее время которых - обычно дорого...


"Добавление IP адресов и имен в переменную из файла"
Отправлено Аноним , 30-Дек-17 01:25 
>[оверквотинг удален]
>>> while IFS=. read ip1 ip2 ip3 drop_anything_else; do
>>>    [ "$drop_anything_else" ] || continue
>>>    ip4=224
>>>    ...
>>> done <./FILE
>> Спасибо за ваш ответ, а не могли бы вы привести пример скрипта
>> полностью, в программировании вообще не силен.
> Люди обычно, если понимают что не сильны в некой предметной области -
> либо не берутся за работу требующую специальных знаний, либо обращаются к
> высококвалифицированным специалистам, рабочее время которых - обычно дорого...

Люди, время которых обычно дорого, не умничают на форумах.


"Добавление IP адресов и имен в переменную из файла"
Отправлено universite , 18-Мрт-18 22:59 
> Люди, время которых обычно дорого, не умничают на форумах.

Можно во время перерыва пробежаться по форумам и оставить свое авторитетное мнение :)


"Добавление IP адресов и имен в переменную из файла"
Отправлено Led , 30-Дек-17 00:19 
> в программировании вообще не силен.

Берись за метлу.

Или думаешь, что станешь "силён" как только получишь "тройку" в зачётку?


"Добавление IP адресов и имен в переменную из файла"
Отправлено Аноним , 18-Мрт-18 22:56 
> Содержимое файла NAME:
> 100;192.168.0.1/24
> 101;192.168.1.1/24
> 102;192.168.2.1/24
> 103;192.168.3.1/24
> 104;192.168.4.1/24

while IFS= read L; do
    NAME=${L%;*}
    IP4=${L##*.}
    IP4=${IP4%/*}
    IP1=${L#*;}
    IP1=${IP1%.*}
    echo "${NAME}mk ${NAME}cs ${IP1}.$((IP4 + 1)) ${IP1}.$((IP4 + 2))"
done < ./NAME