
Я пытаюсь создать скрипт 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/
Он невероятно прост в освоении, но очень эффективен, особенно при работе с несколькими серверами.