Как я могу запускать команды в пакетном режиме через SSH? То есть, что является ssh
эквивалентом команды sftp -b <filename> <hostname>
?
У меня есть набор команд, которые я хочу запустить через набор хостов, соединяющихся через ssh
. Более того sftp
, я сохраняю команды в файле, filename
подключаюсь к хосту и запускаю команды, используя ранее упомянутую команду.
Возможно ли что-то подобное закончиться ssh
?
Ответы:
Поправьте меня, если я ошибаюсь, но вы, похоже, хотите запускать обычные команды оболочки на удаленном сервере, где скрипт является локальным.
Я делаю это с некоторым «удаленным выполнением» приложение в моей тестовой среде с использованием Python вместо оболочки:
ssh $userhost python < $pythonscriptfilename
.источник
Эквивалент SSH
sftp -b <filename> <hostname>
будет:ssh -o BatchMode=yes <hostname> sh -s < "<filename>"
источник
Как насчет простоты и запуска «пакетного» файла на другом компьютере?
И командный файл будет обычным сценарием оболочки, поэтому синтаксис хорошо известен.
источник
man expect
? : \но это не идеальный способ.
источник
expect
предназначен для взаимодействия с программами, которые ожидают запуска на терминале. Это не связано с проблемой запуска команд через ssh.возможно
источник
Вы можете использовать принудительные команды SSH.
Они связаны с определенным ключом. Когда аутентификация выполняется с этим ключом, эта команда запускается и соединение завершается. Одним из преимуществ этого подхода является повышение безопасности, поскольку в этом случае ключ не может быть использован для входа в оболочку входа.
источник
Другой вариант скрипта от Arcege - это функция Bash:
Я не использую
-T
опцию ssh , так как она работает не во всех случаях.Этот скрипт использует расширение параметров в массиве позиционных параметров
$@
:"${@:(-1)}"
расширяется до последнего параметра (буквально сначала от конца до конца)"${#@}"
расширяется до количества позиционных параметров"${@:1:${#@}-1}"
расширяется до списка всех параметров от первого до следующего за последним (буквально число параметров меньше одного).источник