Нужна помощь с выполнением и удалением удаленного bash-скрипта через локальный bash-скрипт.

Нужна помощь с выполнением и удалением удаленного bash-скрипта через локальный bash-скрипт.

Я пытаюсь создать скрипт bash, который будет scp скрипта на удаленном сервере, ssh (используя ключ ssh, который уже установлен) на удаленном сервере, выполнять загруженный скрипт, а затем удалять удаленный скрипт, когда он будет завершен. Я не понимаю, как запустить сеанс ssh внутри скрипта bash. Вот команды, которые я использую, чтобы сделать это из командной строки:

scp my_script.sh [email protected]:/usr/home/user/
ssh [email protected]
>sh my_script.sh
>rm myscript.sh
>exit

Как мне написать скрипт для ssh-части моего списка команд? Спасибо!

решение1

ssh выполнит команды, переданные в качестве аргументов на удаленной машине. Следующее должно сделать то, что вам нужно:

ssh [email protected] 'sh my_script.sh; rm my_script.sh'

решение2

Вы также можете пропустить копирование и удаление файла и сделать что-то вроде этого.

cat my_script.sh | ssh user@host bash

решение3

Вы также можете изучить использование Fabric, библиотеки Python для системного администрирования через SSH:

http://docs.fabfile.org/0.9.1/

Он невероятно прост в освоении, но очень эффективен, особенно при работе с несколькими серверами.

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