Назад | Перейти на главную страницу

ssh remote не запустится, если

Это не сработает,

ssh -o ConnectTimeout=10 -o BatchMode=yes -o "StrictHostKeyChecking no" -q server1  "if [[ $(/usr/bin/lsblk /dev/sde | wc -l) = 2 ]]; then echo found; fi"

Но если я сделаю это на удаленном клиенте или используя ansible "if [[ $(/usr/bin/lsblk /dev/sde | wc -l) = 2 ]]; then echo found; fi", он будет работать. Я не хочу использовать ansible все время, потому что у нас есть только башня, и мы медленно выполняем простой запрос.

Спасибо за поддержку.

Подстановка команд $(/usr/bin/lsblk ... ) заключен в двойные кавычки, а $ не экранирован, поэтому он будет выполнен и заменен на локальном компьютере перед ssh даже выполняется. Если вы хотите, чтобы это выполнялось в удаленной системе, используйте одинарные кавычки вместо двойных или избегайте $.

Ответьте, поместите в скрипт 1.sh,

ssh -o ConnectTimeout = 10 -o BatchMode = yes -o "StrictHostKeyChecking no" -q server <1.sh