The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ldapsearch и  AD"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"ldapsearch и  AD"  
Сообщение от artemrts email(ok) on 26-Ноя-08, 10:53 

Доброго дня!.

Командой ldapsearch делаю выборку smtp адресов пользователей (через cron):

/usr/local/bin/ldapsearch -h 192.168.1.1 -p 389 -P 3 -D 'cn=ldap,ou=ldap,dc=domain,dc=ua' -w 'Bigsecret123' -b 'dc=domain,dc=ua' '(&(proxyAddresses=smtp:*)(|(objectClass=user)(objectClass=group)))' proxyAddresses> /usr/local/etc/ldapquery

Работает нормально, результат скидывается в файл ldapquery. Но вот проблема, если сервер недоступен по какой-то причине, то файл, естественно, после выполнения команды пустой.
Помогите написать скриптик, что бы в случае ошибки запроса, результат не записывался в файл.
  

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ldapsearch и  AD"  
Сообщение от tux2002 email on 26-Ноя-08, 11:20 
>[оверквотинг удален]
> Командой ldapsearch делаю выборку smtp адресов пользователей (через cron):
>
> /usr/local/bin/ldapsearch -h 192.168.1.1 -p 389 -P 3 -D 'cn=ldap,ou=ldap,dc=domain,dc=ua' -w 'Bigsecret123' -b 'dc=domain,dc=ua' '(&(proxyAddresses=smtp:*)(|(objectClass=user)(objectClass=group)))' proxyAddresses> /usr/local/etc/ldapquery
>
> Работает нормально, результат скидывается в файл ldapquery. Но вот проблема, если
>сервер недоступен по какой-то причине, то файл, естественно, после выполнения команды
>пустой.
> Помогите написать скриптик, что бы в случае ошибки запроса, результат не
>записывался в файл.
>

......>/usr/local/etc/ldapquery.tmp
if [ $? == 0 ]
then
  cat /usr/local/etc/ldapquery.tmp > /usr/local/etc/ldapquery
fi

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "ldapsearch и  AD"  
Сообщение от artemrts email(ok) on 26-Ноя-08, 11:33 
>[оверквотинг удален]
>>пустой.
>> Помогите написать скриптик, что бы в случае ошибки запроса, результат не
>>записывался в файл.
>>
>
>......>/usr/local/etc/ldapquery.tmp
>if [ $? == 0 ]
>then
>  cat /usr/local/etc/ldapquery.tmp > /usr/local/etc/ldapquery
>fi

    Не понял первую строчку. Понятно что ldapquery.tmp -  временный файл, а как его определить??

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "ldapsearch и  AD"  
Сообщение от artemrts email(ok) on 26-Ноя-08, 11:46 
>[оверквотинг удален]
>>>
>>
>>......>/usr/local/etc/ldapquery.tmp
>>if [ $? == 0 ]
>>then
>>  cat /usr/local/etc/ldapquery.tmp > /usr/local/etc/ldapquery
>>fi
>
>    Не понял первую строчку. Понятно что ldapquery.tmp -
> временный файл, а как его определить??

С этим разобрался, но после запуска скрипта пишет ошибку

[0==0]: not found
Press any key to continue...

В файле ldapquery.tmp есть результат, но в ldapquery не копируется.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "ldapsearch и  AD"  
Сообщение от tux2002 email on 26-Ноя-08, 11:57 
>[оверквотинг удален]
>>
>>    Не понял первую строчку. Понятно что ldapquery.tmp -
>> временный файл, а как его определить??
>
>С этим разобрался, но после запуска скрипта пишет ошибку
>
>[0==0]: not found
>Press any key to continue...
>
>В файле ldapquery.tmp есть результат, но в ldapquery не копируется.

if <пробел> [ <пробел> $?<пробел> ==<пробел> 0 <пробел>]

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "ldapsearch и  AD"  
Сообщение от artemrts email(ok) on 26-Ноя-08, 12:07 
>[оверквотинг удален]
>>> временный файл, а как его определить??
>>
>>С этим разобрался, но после запуска скрипта пишет ошибку
>>
>>[0==0]: not found
>>Press any key to continue...
>>
>>В файле ldapquery.tmp есть результат, но в ldapquery не копируется.
>
>if <пробел> [ <пробел> $?<пробел> ==<пробел> 0 <пробел>]

Вот скрипт

#!/bin/sh
/usr/local/bin/ldapsearch -h 192.168.1.1 -p 389 -P 3 -D 'cn=ldap,ou=ldap,dc=domain,dc=ua' -w 'Bigsecret123' -b 'dc=domain,dc=ua' '(&(proxyAddresses=smtp:*)(|(objectClass=user)(objectClass=group)))' proxyAddresses> /usr/local/etc/ldapquery > /usr/local/etc/ldapquery.tmp

if [ $? == 0 ]
then cat /usr/local/etc/ldapquery.tmp > /usr/local/etc/ldapquery
fi

Ошибка

[: 0: unexpected operator

В чем проблема? Что я не так делаю?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "ldapsearch и  AD"  
Сообщение от tux2002 email on 26-Ноя-08, 12:28 
#!/bin/sh

/usr/local/bin/ldapsearch -h 192.168.1.1 -p 389 -P 3 -D
'cn=ldap,ou=ldap,dc=domain,dc=ua' -w 'Bigsecret123' -b 'dc=domain,dc=ua'
'(&(proxyAddresses=smtp:*)(|(objectClass=user)(objectClass=group)))' proxyAddresses > /usr/local/etc/ldapquery.tmp

if [ $? == 0 ]
then cat /usr/local/etc/ldapquery.tmp > /usr/local/etc/ldapquery
else
echo "Error......"
exit 1
fi

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "ldapsearch и  AD"  
Сообщение от tux2002 email on 26-Ноя-08, 12:35 
Если не получится попробуйте == заменить на -eq
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "ldapsearch и  AD"  
Сообщение от artemrts email(ok) on 26-Ноя-08, 12:31 
>[оверквотинг удален]
>
>if [ $? == 0 ]
>then cat /usr/local/etc/ldapquery.tmp > /usr/local/etc/ldapquery
>fi
>
>Ошибка
>
>[: 0: unexpected operator
>
>В чем проблема? Что я не так делаю?

Фсем спасибо, проблема решена.

if [ -s /usr/local/etc/ldapquery.tmp ]
then cat /usr/local/etc/ldapquery.tmp > /usr/local/etc/ldapquery
fi

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "ldapsearch и  AD"  
Сообщение от tux2002 email on 26-Ноя-08, 12:39 
>>)(|(objectClass=user)(objectClass=group)))' proxyAddresses> /usr/local/etc/ldapquery > >>/usr/local/etc/ldapquery.tmp

/usr/local/etc/ldapquery уберите.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "ldapsearch и  AD"  
Сообщение от tux2002 email on 26-Ноя-08, 12:43 
Лучше ориентироваться на статус завершения команды.
Здесь прокатит, другая команда напишет что-нибудь в файл.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "ldapsearch и  AD"  
Сообщение от artemrts email(ok) on 26-Ноя-08, 13:35 
>Лучше ориентироваться на статус завершения команды.
>Здесь прокатит, другая команда напишет что-нибудь в файл.

Да. Я с вами согласен. Но ошибка всеравно

if [ $? == 0 ]
then cat /usr/local/etc/ldapquery.tmp > /usr/local/etc/ldapquery
else
echo "Error......"
exit 1
fi


[: 0: unexpected operator
Error ...

И хоть ты тресни:-)).

P.S.: Спасибо за помощь!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "ldapsearch и  AD"  
Сообщение от artemrts email(ok) on 26-Ноя-08, 13:38 
>[оверквотинг удален]
>exit 1
>fi
>
>
>[: 0: unexpected operator
>Error ...
>
>И хоть ты тресни:-)).
>
>P.S.: Спасибо за помощь!

Блин.! Работает. Я написал 2 знака равно. Нада один-же)).


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "ldapsearch и  AD"  
Сообщение от tux2002 email on 26-Ноя-08, 15:21 
>[оверквотинг удален]
>>
>>
>>[: 0: unexpected operator
>>Error ...
>>
>>И хоть ты тресни:-)).
>>
>>P.S.: Спасибо за помощь!
>
>Блин.! Работает. Я написал 2 знака равно. Нада один-же)).

Мда man bash и man test несколько отличаются насчёт "=".
PS у меня работало ==. В man test
       STRING1 = STRING2
              the strings are equal

       STRING1 != STRING2
              the strings are not equal

      INTEGER1 -eq INTEGER2
              INTEGER1 is equal to INTEGER2


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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