LINUX.ORG.RU
ФорумAdmin

Скрипт


0

0

Ситуация такая. Есть фря с /etc/rc.conf (он огромен, поэтому разгребать руками не совсем удобно) и есть вывод ifconfig (еще более огромен). Подскажите пример (готовый в принципе не нужен (хочу сам научиться) скриптик, который парсил бы /etc/rc.conf и сверял установки с выводом ifconfig'a, и если что не так -- ругался бы. Я на bashe написал уже, скармливаешь ему интерфейс, но так не сильно удобно -- надо их все вручную перебирать.

Сейчас собрался переписать все это дело на perl. Думаю по удобнее будет, делать собирался через
. /etc/rc.conf а в perl через %ENV.

Подкиньте пример, если кому попадался, мне гугл нифига не показал :(
И мыслей, если не жалко конечно :)

Спасибо!

anonymous

что же там сотворили с rc.conf, что он стал огромен? много конфигурили через sysinstall? может, все-таки лучше разобраться?

wc -l /etc/rc.conf
50

Marmirus ★★
()
Ответ на: комментарий от Marmirus

не поулчится :) wc -l rc.conf 278 rc.conf

anonymous
()

Ну вот тебе примерный костыль - смотрит rc.conf,  а потом проверяет вывод ifconfig'а на наличие адреса. Если адрес есть, то пишет "is present", если адреса нету, пишет "is not present".

for i in `cat /etc/rc.conf|grep ifconfig_|awk {'print $2'}`; do if [ "`ifconfig|grep $i`" != "" ]; then echo $i is present; else echo $i is not present; fi; done 

anonymous
()
Ответ на: комментарий от anonymous

это не катит :) такую функциональность я уже реализовал. Говорю же, не совсем удобно. Надо из rc.conf видимо в hash собрать все :) и потом уже сравнивать.

anonymous
()
Ответ на: комментарий от anonymous

это не катит :) такую функциональность я уже реализовал. Говорю же, не совсем удобно. Надо из rc.conf видимо в hash собрать все :) и потом уже сравнивать. nigords

anonymous
()
Ответ на: комментарий от anonymous

А смысл запихивать в хаш? Тебе же один раз надо проверить наличие или нет. Пихать в хаш это только лишний гимор. Вообщем вам виднее..

Аноним с костылем.

anonymous
()
Ответ на: комментарий от anonymous

Любителям хэшей:

$ ifconfig | awk 'BEGIN {
                          while (getline < "/etc/rc.conf") {
                             if ($1 ~ /ifconfig_/) {
                                 h[$2]=1;}
                             }
                          }
              /inet addr/ {
                             split($2,a,":");
                             b=a[2]; 
                             h[b]++} 
                  END {
                          for (v in h) {
                            if (h[v]>1) {
                              print v,h[v]
                            }
                          }
                      }'

Парсер вывода ifconfig под линукс (bsd нет).

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.