сценарий удара неожиданно выходит при перезагрузке удаленного сервера через ssh

У меня есть сценарий удара (на локальной машине), который имеет следующую строку

ssh root@remoteip "some commands; shutdown -r now"

#do other things

Однако после этой строки (удаленный сервер был перезагружен успешно), целый сценарий удара просто выходит ("делают другие вещи" не выполняются).

Как решить эту проблему?

3
задан 25 April 2017 в 13:11

1 ответ

Работайте эти shutdown команда в фоне, это сделало задание для меня:

#!/bin/bash

ssh root@remote-ip "some-command > /dev/null; shutdown -r now &"

uname -a
  • some-command > /dev/null: выполнения some-command и перенаправления вывод к /dev/null, таким образом, я не получаю вывода, поскольку Вы сказали.
  • shutdown -r now &: работает эти shutdown команда в фоне и оставляет оболочку для получения дальнейших команд.
  • uname мой #do other things для тестовой цели, которая будет выполняться прямо после того, как удаленная система понижается;) не делает ожидает его, чтобы быть завершенным).

существуют другие способы достигнуть этого результата также, например, можно выполнить целую команду в фоне:

ssh root@remote-ip "some-command > /dev/null; shutdown -r now" &

Или выполненный это в оболочке sub:

$(ssh root@remote-ip "some-command; shutdown -r now")

, Хотя я предлагаю первый, имея в виду выполнение эти shutdown команда в фоновом режиме удаленной машины.

1
ответ дан 1 December 2019 в 17:30

Другие вопросы по тегам:

Похожие вопросы: