ZebroidФорумПубличный разделВопросыОбрыв SSH команд

Обрыв SSH команд

22 августа 2016, 18:12
Зарегистрирован: 11 августа 2016, 10:38
Пока не понял в чем дело, потестируйте каплю-макрос SSH-команду с большим списком команд (до 200 строк).
У меня первые N-строк выполняются нормально, а дальше начинаются перебои — куски команд обрываются и команда не выполняется.
Вместо выполнения ошибки что не указаны параметры, хотя все команды сформированы по одному шаблону

mysql -u admin --password=123 --execute="DROP DATABASE IF EXISTS \`site1\`;CREATE DATABASE \`site1\`;"
rm -rf /home/admin/web/site1/public_html/*

mysql -u admin --password=123 --execute="DROP DATABASE IF EXISTS \`site2\`;CREATE DATABASE \`site2\`;"
rm -rf /home/admin/web/site2/public_html/*


26 августа 2016, 19:01
Зарегистрирован: 11 августа 2016, 10:38
Программа не дожидается когда сервер закончит выполнение команды и посылает следующую, но поскольку сервер в этот момент занят, он не готов принять ее. Получаются доходят только обрывки команд.
Хорошо видно если сделать серию wget команд (по одной в строке)

26 августа 2016, 19:31
Зарегистрирован: 10 апреля 2012, 00:00
К сожалению протокол SSH не имеет обратной связи, нельзя точно узнать когда команда закончила своё выполнение. В Зеброиде реализован скрытый механизм решения этой проблемы, но на случай, если он не правильно сработает — существует так же таймаут на ожидание, и по истечению этого таймаута происходит продолжение работы.

Вы подобное можете наблюдать и в обычном терминале, если закинете несколько команд одним списком, в некоторых случаях следующая команда передастся до того, как выполнится предыдущая (я лично сам такое неоднократно наблюдал в терминале Ubuntu).