Как к командам выполнения в пакетном режиме по ssh?

Как может я команды выполнения в пакетном режиме по ssh? Таким образом, что ssh эквивалент команды sftp -b <filename> <hostname>?

У меня есть ряд команд, которые я хочу натыкаться на ряд хостов, соединяющихся ssh. sftp, я храню команды в файле filename и соединитесь с хостом и выполните команды с помощью ранее упомянутой команды.

Что-то как этот возможный законченный ssh?

9
25.03.2011, 22:01
6 ответов

Исправьте меня, если я неправ, но Вы, кажется, желаете выполнить регулярные команды оболочки на удаленном сервере, где сценарий локален.

#!/bin/sh
trap "rm -f /tmp/sendonssh.$$.*" 0 1 2 3 15
# commands to run on the remote server
cat <<'EOF' >> /tmp/sendonssh.$$.sh
mkdir -p /tmp/foobar.$$
mv $HOME/xyzzy /tmp/foobar.$$
chmod 640 $HOME/xyzzy
EOF
# call for each argument
for userhost in "$@"; do
    errorout=`ssh -aTxo BatchMode=yes $userhost /bin/sh -s < /tmp/sendonssh.$$.sh 2>&1`
    rc=$?
    if [ $rc -ne 0 ]; then
        echo "Error: $userhost: $errorout"
        exit $rc
    fi
done

Я делаю это с некоторым 'удаленным выполнением' приложения в моей тестовой среде с помощью Python вместо оболочки: ssh $userhost python < $pythonscriptfilename.

9
27.01.2020, 20:05
  • 1
    благодарит за ответ. Это похоже на него. Я настраиваю его немного и испытываю его теперь. –  Srikanth 25.03.2011, 13:31

Эквивалент SSH sftp -b <filename> <hostname> был бы:

ssh -o BatchMode=yes <hostname> sh -s < "<filename>"

7
27.01.2020, 20:05

Как насчет сохранить это простым и выполнить "пакетный" файл на другом компьютере?

  1. пакетный файл scp user@pc
  2. ssh пакетный файл user@pc
  3. ssh пакетный файл комнаты user@pc

И пакетный файл был бы нормальным сценарием оболочки, таким образом, синтаксис известен.

3
27.01.2020, 20:05

man expect? :\

но это не лучший способ.

0
27.01.2020, 20:05
  • 1
    Привет johnny8888, я нахожусь на сервере Соляриса и нет никакой ручной записи для, ожидают. Можно ли разработать ответ? –  Srikanth 25.03.2011, 13:12
  • 2
    @Srikanth linux.die.net/man/1/expect –  Michael Mrozek♦ 25.03.2011, 15:08
  • 3
    @Srikanth: expect разработан для взаимодействия с программами, которые ожидают работать на терминале. Это не связано с проблемой выполнения команд по ssh. –  Gilles 'SO- stop being evil' 25.03.2011, 22:01

возможно,

ssh user@host sh -c "$(<filename)"
0
27.01.2020, 20:05

Вы могли использовать вызванные команды ssh.

Они связаны с конкретным ключом. Когда аутентификация сделана с тем ключом, та команда выполняется и выходы соединения. Одним преимуществом этого подхода является увеличенная безопасность, так как в этом случае ключ не может использоваться для получения до оболочки входа в систему.

0
27.01.2020, 20:05

Теги

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