The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"грабли с sh-скриптом под hp-ux"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"грабли с sh-скриптом под hp-ux"
Сообщение от Alexandr Smirnov emailИскать по авторуВ закладки on 07-Сен-04, 17:33  (MSK)
Привет!

   После ~4х летнего  перерыва в программировании пришлось вспомнить, что это такое ;) Соответственно, задача следующая, есть технологическая сеть, ей управляет контроллер TNMS от Nortel, живет от на hp-ux 10.20. Живет, не тужит но переодически, где-то раз в сутки  а иногда и чаще теряет из управления все свои технологические девайсы. В этот момент в syslog пишется строчка определенного вида, конкретно такая:

Jan 25 11:42:43 tnms syslog: ConstructDNSonet failed to find itu object

И через минуты 2 контроллер все девайсы подцепляет обратно как ни вчем небывало.

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

tail /var/adm/syslog/syslog.log | grep DNS
if [ $? = 0 ]
then
ifconfig lan1>/home/sdhmsusr/oslog/`date +'%b%d_%X'`
exit 1
else
echo " All OK "
fi


Для того чтоб пустить его кроном с частотой в 1 мин. Но конструция эта (if - fi) никак не хочет, работать, говорит, мол

`if' is not matched

=\

Подскажите , плз что я неправильно делаю?
Да, работает это все в csh.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "грабли с sh-скриптом под hp-ux"
Сообщение от vnp emailИскать по авторуВ закладки(??) on 08-Сен-04, 02:37  (MSK)

>tail /var/adm/syslog/syslog.log | grep DNS
>if [ $? = 0 ]
> then
> ifconfig lan1>/home/sdhmsusr/oslog/`date +'%b%d_%X'`
>  exit 1
> else
>  echo " All OK "
>fi
>
>
>Но конструция эта (if - fi) никак не хочет, работать, говорит, мол
>
>
>`if' is not matched
>
>=\
>
>Подскажите , плз что я неправильно делаю?
>Да, работает это все в csh.


Именно это и неправильно. sh и csh -- разные вещи с разным синтаксисом. Пропишите в начале скрипта #!/bin/sh и забейте на csh. Да, еще $? = 0 рекомендую заменить на $? -eq 0 (т.к. сравнение вас интересует именно числовое, а не строковое).

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "грабли с sh-скриптом под hp-ux"
Сообщение от Alexandr_Smirnov emailИскать по авторуВ закладки(ok) on 08-Сен-04, 11:31  (MSK)
>
>>tail /var/adm/syslog/syslog.log | grep DNS
>>if [ $? = 0 ]
>> then
>> ifconfig lan1>/home/sdhmsusr/oslog/`date +'%b%d_%X'`
>>  exit 1
>> else
>>  echo " All OK "
>>fi
>>
>>
>>Но конструция эта (if - fi) никак не хочет, работать, говорит, мол
>>
>>
>>`if' is not matched
>>
>>=\
>>
>>Подскажите , плз что я неправильно делаю?
>>Да, работает это все в csh.
>
>
>Именно это и неправильно. sh и csh -- разные вещи с разным
>синтаксисом. Пропишите в начале скрипта #!/bin/sh и забейте на csh. Да,
>еще $? = 0 рекомендую заменить на $? -eq 0 (т.к.
>сравнение вас интересует именно числовое, а не строковое).

К сожалению те же грабли =\

[STANDALONE]admin@tnms[14]> /usr/bin/sh
$ dd
script interpreter "/bin/sh" not found
script interpreter link resolves to "/usr/bin/sh"
script interpreter "/bin/sh" not found
script interpreter link resolves to "/usr/bin/sh"
/usr/bin/sh: dd:  not found.
$ sh -v dd
#!/bin/sh
tail /var/adm/syslog/syslog.log | grep DNS
if [ $? -eq 0 ]
        then
                ifconfig lan1>/home/sdhmsusr/oslog/`date +'%b%d_%X'`
                exit 1
        else
                echo " All OK "
fi
dd[3]: Syntax error at line 3 : `if' is not matched.
$

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "грабли с sh-скриптом под hp-ux"
Сообщение от klalafuda emailИскать по авторуВ закладки on 08-Сен-04, 12:22  (MSK)
>К сожалению те же грабли =\
>
>[STANDALONE]admin@tnms[14]> /usr/bin/sh
>$ dd
>script interpreter "/bin/sh" not found
>script interpreter link resolves to "/usr/bin/sh"
>script interpreter "/bin/sh" not found
>script interpreter link resolves to "/usr/bin/sh"
>/usr/bin/sh: dd:  not found.
>$ sh -v dd
>#!/bin/sh
>tail /var/adm/syslog/syslog.log | grep DNS
>if [ $? -eq 0 ]
>        then
>                ifconfig lan1>/home/sdhmsusr/oslog/`date +'%b%d_%X'`
>            
>    exit 1
>        else
>            
>    echo " All OK "
>fi
>dd[3]: Syntax error at line 3 : `if' is not matched.
>$

странно.. могу только сказать, что следующее под BSD работает без всяких проблем:

---cut---
#!/bin/sh

tail /var/log/messages | grep DNS
if [ $? -eq 0 ]
then
        ifconfig rtk0>/tmp/`date +'%b%d_%X'`
        exit 1
else
        echo " All OK "
fi
---cut---

// wbr

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "грабли с sh-скриптом под hp-ux"
Сообщение от Alexandr_Smirnov emailИскать по авторуВ закладки(ok) on 08-Сен-04, 12:48  (MSK)
>
>Именно это и неправильно. sh и csh -- разные вещи с разным
>синтаксисом. Пропишите в начале скрипта #!/bin/sh и забейте на csh. Да,
>еще $? = 0 рекомендую заменить на $? -eq 0 (т.к.
>сравнение вас интересует именно числовое, а не строковое).

Если же говорить о синтаксисе, что именно не нравится csh? Вообще, чем они отличаются?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "грабли с sh-скриптом под hp-ux"
Сообщение от Xela emailИскать по авторуВ закладки(ok) on 08-Сен-04, 16:10  (MSK)
>if [ $? = 0 ]
> then

if [ $? = 0 ];
then

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "грабли с sh-скриптом под hp-ux"
Сообщение от _dima Искать по авторуВ закладки on 10-Сен-04, 18:21  (MSK)
>>if [ $? = 0 ]
>> then
>
>if [ $? = 0 ];
> then

не уверен на счёт точки с запятой(хотя во многих оригинальных скриптах она действительно есть), но вот так может
if ( $? = 0 )
then

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру