LINUX.ORG.RU
ФорумAdmin

Не интерактивный ssh в cron или zabbix

 


2

1

Потратил сегодня часа два на проблему, причем беглый поиск выдает, что проблема таки есть, но с решениями как-то не очень. В общем, если нужно запустить ssh-клиента из как-то хитро вызываемого не интерактивного скрипта, то можно столкнуться со следующим поведением: команда завершается успешно, показывает код выхода «0», но при этом не делает ничего полезного. Я столкнулся при написании хитрого User Parameter для Zabbix, но, говорят, в cron та же история. Если посмотреть отладочный вывод ssh, то там будет фигурировать что-то вроде такого:

debug2: channel 0: read<=0 rfd 4 len 0

debug2: channel 0: read failed
И последующее закрытие соединения. Происходит это, когда у ssh нет STDIN (то-ли перенаправлен из /dev/null, то-ли вообще закрыт), даже если читать оттуда ничего не предполагается.

Решение на поверхности: если команда не использует входящий поток, перенаправить его из /dev/zero:

ssh <host> "команда" </dev/zero

Ответ на: комментарий от vel

Нет, ни "-t", ни "-t -t", ни "-T" это не решает. Я сначала сообразил жутко сложную схему с отсоединенным screen-ом, а потом только сообразил, что ему всего-то надо хоть какой-нибудь STDIN.

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