Как заставить SSHPASS не ждать результата отправленной команды и вместо этого отключиться?

Как заставить SSHPASS не ждать результата отправленной команды и вместо этого отключиться?

Я использую SSHPASS для настройки устройства на базе Linux через временный IP-адрес в целях автоматизации.

sshpass -p $TARGET_password ssh -o StrictHostKeyChecking=no $TARGET_username@$TARGET_IP 'bash -s' < $configfile

Я отправляю скрипт с кучей команд, последняя из которых — настройка постоянного IP-адреса.

Как только скрипт меняет IP, он зависает, так как теряет сеанс с временным IP.

Так возможно ли отправить команду, которая меняет IP, и немедленно отключиться, не дожидаясь ответа?

решение1

Сделать так, чтобы он отключилсядоон меняет адрес. Например, сделайте так, чтобы последняя команда выполнялась в фоновом режиме с &оператором, может быть, что-то вроде этого:

( (sleep 1; ip addr change ...) &)

У SSHPASS нет надежного способа узнать, получает ли он ACK из-за того, что команда была выполнена успешно (и IP-адрес изменился), или из-за того, что пакеты команд не достигли сервера.совсем(из-за проблем с сетью). В первом случае вы хотите, чтобы он отключился, но во втором случае он должен продолжать повторно передавать неподтвержденные пакеты.

Связанный контент