Ошибка 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 работает на клиенте?
  • Установка Freeradius-LDAP 3.x из PPA-репозитория
  • Используя LDAP для аутентификации, как я могу безопасно отключить / деактивировать учетную запись, не удаляя ее?
  • ldap_bind: Недействительные учетные данные (49)
  • Фильтры поиска LDAP с использованием BASH
  • Что представляет собой сетевая группа хоста в контексте sudoHost в схеме LDAP Sudoers
  • Подтвердить соединение в службе «Давай»
  • Ограничение использования журнала транзакций Openldap
  • 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

    Могу ли я сказать, чтобы найти, чтобы не восстановить исходный рабочий каталог?

    Настройка USB-микрофона под Linux

    Windows 8.1 не загружается на моем ноутбуке с двойной загрузкой

    Как ограничить полосу пропусканием облачным хранилищем, установленным davfs?

    Как вручную настроить монитор в CentOS7, подключенном через KVM?

    ssh не получает ключ хоста

    Настройка файловой системы ext4 для раздела хранения

    Настройка сети для совместного использования принтера, подключенного к одной конкретной машине в сети

    Можно ли перенести файл из сценария Linux Bash в Windows без установки папки сервера?

    Соответствующая строка с фиксированным количеством символов с использованием grep

    Каков наилучший список репо CentOS 6 для пакетов LAMP?

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

    Cron не печатает в syslog

    Systemd с rtorrent в tmux

    Являются ли пакеты gstreamer полностью открытым исходным кодом?

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