Ошибка Ldap не перенаправляется в файл

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

#!/bin/bash for i in $(seq 20000); do ldapsearch -x -LLL -D "cn=manager,ou=ft,o=cudb,c=es" -w normal -h 10.22.127.4 -p 389 -b 'dc=IMSI, ou=identities,ou=ft,o=cudb,c=es' done | while IFS= read -r line; do echo "[---- PL0 ----] $(date) $line"; done >> search_imsi_$(date '+%Y_%m_%d__%H_%M_%S').log 2>&1 

Я также пытался передать вывод в цикле (не после завершения), и ошибка все еще печатается на экране. Данная ошибка:

 ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1) 

Возвращаемое значение этой ошибки – 255.

Это какой-то особый тип ошибки, который не перенаправляется, как обычные, или я чего-то не хватает?

  • Изменение предпочтения сервера LDAP в Solaris 10
  • Что случилось с моей интеграцией AD / LDAP?
  • Тип токена аутентификации не поддерживается
  • Ошибка OpenLDAP при добавлении ACL
  • Важность заказа в именах контроллеров домена для установки LDAP-сервера есть ли какая-то причина?
  • Возможно ли синхронизация с Linux и Azure AD?
  • sudo su error messege через LDAP
  • Как определить, какая группа отвечает за ваши права sudo?
  • One Solution collect form web for “Ошибка Ldap не перенаправляется в файл”

    Сообщение от ldapsearch печатается в поток stderr , который не попадает перед | while | while .

    Если вы пытались перенаправить его только с помощью a > , это объясняет, почему оно не работает внутри цикла.

    Если вы хотите записать вывод ошибки ldapsearch, измените свой скрипт на:

     #!/bin/bash for i in $(seq 20000); do ldapsearch -x -LLL -D "cn=manager,ou=ft,o=cudb,c=es" \ -w normal -h 10.22.127.4 -p 389 \ -b 'dc=IMSI, ou=identities,ou=ft,o=cudb,c=es' 2>&1 ## <-- added "2>&1" here done | while IFS= read -r line do echo "[---- PL0 ----] $(date) $line"; done >> search_imsi_$(date '+%Y_%m_%d__%H_%M_%S').log ## no need for 2>&1 here 

    Я немного переформатировал сценарий, чтобы упростить просмотр циклов и двух изменений. Поскольку во втором цикле работает только оператор echo (для stdout), нет необходимости перенаправлять stderr.

    Interesting Posts

    нажимать и изолировать пользовательские среды на лету

    awk, как изменить значение файла с помощью наборов параметров?

    Как я могу получить доступ к общей папке из R на Ubuntu на второй компьютер Ubuntu с помощью Samba?

    Как сделать файлы внутри TMPFS более вероятными для обмена

    как я могу стереть сервер, к которому у меня нет физического доступа?

    Как zgrep несколько строк

    Как создать резервную копию запущенной системы?

    Как удаленно отправлять нажатие клавиши приложения X11?

    ошибка tar (дочерняя)

    Как сделать gvfs mount fat / vfat дисков с именами 8.3, установленными в нижнем регистре на автоматическом монтировании?

    Как сохранить строку «*» в переменной в unix / bash?

    Отображать заголовки с помощью vimdiff или vim -d

    Убивание подпроцессов после завершения или уничтожения скрипта

    Как сделать чтение услуги из гнезда FIFO

    Сценарий оболочки Bash для удаления указателя в имени файла

    Linux и Unix - лучшая ОС в мире.