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

Исходное сообщение
"Изменение SOA у файла зоны"

Отправлено universite , 16-Май-11 17:42 
Формат зоны

$ttl 14400
domain.ks.ua.        IN      SOA     ns.domain.ua. mail.ukr.net. (2011051208 10800 14400 604800 86400)
        IN      NS      ns.domain.ua.
        IN      NS      ns.secondary.net.ua.
;       IN      NS      ns3.domain.ua
        IN      A       XXX.209.ZZZ.54
        IN      AAAA    2001:YYY:YY:YYY:12f5:89a1:e201:001b
domain.ks.ua.      IN      MX   10 mail.domain.ks.ua.
localhost       A       127.0.0.1
*               A       XXX.209.ZZZ.54
*               AAAA    2001:YYY:YYY:YYY:12f5:89a1:e201:001b

нужно распарсить zone.conf
прочитать SOA если он сегодняшний, увеличить на 1, если старый, сгенерить сегодняшний, с нулем в конце

Содержание

Сообщения в этом обсуждении
"Изменение SOA у файла зоны"
Отправлено Aquarius , 17-Май-11 02:08 
[оверквотинг удален]
> прочитать SOA если он сегодняшний, увеличить на 1, если старый, сгенерить сегодняшний,
> с нулем в конце

видимо, речь, все-таки, не про всю SOA, а только про серийный номер?
предлагаю сформулировать задачу в другой форме: сгенерировать "сегодняшний, с нулем в конце" (A), сравнить (арифметически) с "выпарсеным" (B), и, если A>B, использовать A, иначе, B+1


"Изменение SOA у файла зоны"
Отправлено universite , 17-Май-11 02:23 
> видимо, речь, все-таки, не про всю SOA, а только про серийный номер?
> предлагаю сформулировать задачу в другой форме: сгенерировать "сегодняшний, с нулем в конце"
> (A), сравнить (арифметически) с "выпарсеным" (B), и, если A>B, использовать A,
> иначе, B+1

Да, вы правы, сравнивать только серийный номер.
Но меня больше пугает парсинг зоны :(

P.S. host -t SOA domain.ks.ua считаем грязным читом.


"Изменение SOA у файла зоны"
Отправлено Aquarius , 18-Май-11 20:38 
>> видимо, речь, все-таки, не про всю SOA, а только про серийный номер?
>> предлагаю сформулировать задачу в другой форме: сгенерировать "сегодняшний, с нулем в конце"
>> (A), сравнить (арифметически) с "выпарсеным" (B), и, если A>B, использовать A,
>> иначе, B+1
> Да, вы правы, сравнивать только серийный номер.
> Но меня больше пугает парсинг зоны :(
> P.S. host -t SOA domain.ks.ua считаем грязным читом.

использование perl'а грязным читом не считается?


"Изменение SOA у файла зоны"
Отправлено universite , 18-Май-11 20:40 

> использование perl'а грязным читом не считается?

подтема топика указана: "Shell"
Пока perl не планируется использовать


"Изменение SOA у файла зоны"
Отправлено LSTemp , 17-Май-11 04:49 
>[оверквотинг удален]
> localhost       A    
>   127.0.0.1
> *            
>    A       XXX.209.ZZZ.54
> *            
>    AAAA    2001:YYY:YYY:YYY:12f5:89a1:e201:001b
>

> нужно распарсить zone.conf
> прочитать SOA если он сегодняшний, увеличить на 1, если старый, сгенерить сегодняшний,
> с нулем в конце

Цену решения огласи (http://www.opennet.ru/openforum/vsluhforumID9/9126.html)



"Изменение SOA у файла зоны"
Отправлено universite , 17-Май-11 11:42 
>[оверквотинг удален]
>>   127.0.0.1
>> *
>>    A       XXX.209.ZZZ.54
>> *
>>    AAAA    2001:YYY:YYY:YYY:12f5:89a1:e201:001b
>>
>> нужно распарсить zone.conf
>> прочитать SOA если он сегодняшний, увеличить на 1, если старый, сгенерить сегодняшний,
>> с нулем в конце
> Цену решения огласи (http://www.opennet.ru/openforum/vsluhforumID9/9126.html)

0$


"Изменение SOA у файла зоны"
Отправлено tsolodov , 18-Май-11 15:11 
>[оверквотинг удален]
>>> *
>>>    A       XXX.209.ZZZ.54
>>> *
>>>    AAAA    2001:YYY:YYY:YYY:12f5:89a1:e201:001b
>>>
>>> нужно распарсить zone.conf
>>> прочитать SOA если он сегодняшний, увеличить на 1, если старый, сгенерить сегодняшний,
>>> с нулем в конце
>> Цену решения огласи (http://www.opennet.ru/openforum/vsluhforumID9/9126.html)
> 0$

создал на M4 файл
scripts/zonestemplates]$ cat ./in-addr.arpa.m4
$TTL    86400
@               IN      SOA     iap-5.srv.domain.ru nobody.ns.fttb. (
                        _DATE
                        7200
                        7200
                        864000
                        86400 )
                IN      NS      ns1.fttb.
                IN      NS      ns2.fttb.
                IN      NS      ns3.fttb.
                IN      NS      ns4.fttb.

$INCLUDE _FILE


Что получается:
zonestemplates]$ m4 -D_DATE=`date "+%Y%m%d%H"` -D_FILE="hui" ./in-addr.arpa.m4
$TTL    86400
@               IN      SOA     iap-5.srv.domain.ru. nobody.ns.fttb. (
                        2011051815
                        7200
                        7200
                        864000
                        86400 )
                IN      NS      ns1.fttb.
                IN      NS      ns2.fttb.
                IN      NS      ns3.fttb.
                IN      NS      ns4.fttb.

$INCLUDE hui



"Изменение SOA у файла зоны"
Отправлено universite , 18-Май-11 20:20 

> создал на M4 файл
> scripts/zonestemplates]$ cat ./in-addr.arpa.m4

Проблем с генерации зоны нет, проблема в корректном парсинге номера зоны.


"Изменение SOA у файла зоны"
Отправлено LSTemp , 19-Май-11 00:28 
>[оверквотинг удален]
>>> *
>>>    A       XXX.209.ZZZ.54
>>> *
>>>    AAAA    2001:YYY:YYY:YYY:12f5:89a1:e201:001b
>>>
>>> нужно распарсить zone.conf
>>> прочитать SOA если он сегодняшний, увеличить на 1, если старый, сгенерить сегодняшний,
>>> с нулем в конце
>> Цену решения огласи (http://www.opennet.ru/openforum/vsluhforumID9/9126.html)
> 0$

про 0$ ответ в другом топике дал.

теперь сформируй входные данные: SOA всегда в оддной строке входного файла? или может иметь вид типа:

[root@local localdomain]# cat ./srv
$TTL    86400

@       IN      SOA     localhost.localdomain. root.localdomain. (
                        200811300       ; serial
                        8H              ; refresh
                        2H              ; retry
                        1W              ; expiry
                        1D)             ; minimum

...

вот вопрос. я же говорил, про вход и выход. Вы читали?


PS
вынесите serial в отдельный файл, мучаейе его там и include потом.  нах Вам вообще парсинг всей зоны для решения данной задачи?

PSS
вход->выход->анализ->решение (теперь Вы мне уже должны 0+0=два ноля)


"Изменение SOA у файла зоны"
Отправлено universite , 19-Май-11 04:03 

> теперь сформируй входные данные: SOA всегда в оддной строке входного файла? или
> может иметь вид типа:

Такой формат самый тяжелый в парсинге, поэтому пока не рассматриваем.
Многие панели специально генерят конфиг в одну строчку.


"Изменение SOA у файла зоны"
Отправлено LSTemp , 23-Май-11 07:43 

>> теперь сформируй входные данные: SOA всегда в оддной строке входного файла? или
>> может иметь вид типа:
> Такой формат самый тяжелый в парсинге, поэтому пока не рассматриваем.
> Многие панели специально генерят конфиг в одну строчку.

для совсем "не заню каких, чтоб не обидеть" повторюсь: serial в отдельный файл и include его потом. а с файлом в из одной строки парсинга не надо.



"Изменение SOA у файла зоны"
Отправлено LSTemp , 23-Май-11 07:47 
>> теперь сформируй входные данные: SOA всегда в оддной строке входного файла? или
>> может иметь вид типа:
> Такой формат самый тяжелый в парсинге, поэтому пока не рассматриваем.
> Многие панели специально генерят конфиг в одну строчку.

"панели" ??? )))


"Изменение SOA у файла зоны"
Отправлено tsolodov , 18-Май-11 15:12 
>[оверквотинг удален]
> localhost       A    
>   127.0.0.1
> *            
>    A       XXX.209.ZZZ.54
> *            
>    AAAA    2001:YYY:YYY:YYY:12f5:89a1:e201:001b
>
> нужно распарсить zone.conf
> прочитать SOA если он сегодняшний, увеличить на 1, если старый, сгенерить сегодняшний,
> с нулем в конце

кстати можно обойтись cat ./xxx | sed s/что/на что/


"Изменение SOA у файла зоны"
Отправлено universite , 18-Май-11 20:27 

> кстати можно обойтись cat ./xxx | sed s/что/на что/

можно, в прошлый раз при глобальных заменах мне пришлось юзать tee



"Изменение SOA у файла зоны"
Отправлено LSTemp , 23-Май-11 07:51 
>> кстати можно обойтись cat ./xxx | sed s/что/на что/
> можно, в прошлый раз при глобальных заменах мне пришлось юзать tee

дебилизм не лечится.