Как запустить локальный скрипт через SSH
Справка:
Выполнение сценария по SSH без копирования файла сценария.
Вам нужно простое соединение SSH и локальный скрипт.
Код:
#!/bin/sh
print_usage() {
echo -e "`basename $0` ssh_connexion local_script"
echo -e "Remote executes local_script on ssh server"
echo -e "For convinient use, use ssh public key for remote connexion"
exit 0
}
[ $# -eq "2" ] && [ $1 != "-h" ] && [ $1 != "--help" ] || print_usage
INTERPRETER=$(head -n 1 $2 | sed -e 's/#!//')
cat $2 | grep -v "#" | ssh -t $1 $INTERPRETER
Примеры:
- ssh-remote-exec root @ server1 myLocalScript.sh #for Bash
- ssh-remote-exec root @ server1 myLocalScript.py #for Python
- ssh-remote-exec root @ server1 myLocalScript.pl #for Perl
- ssh-remote-exec root @ server1 myLocalScript.rb # для Ruby
Пошаговые пояснения
Этот скрипт выполняет следующие операции:
1 ° ловит первую строку #! получить интерпретатор (т.е. Perl, Python, Ruby, Bash интерпретатор),
2 ° запускает дистанционный интерпретатор по SSH,
3 ° отправьте все тело скрипта по SSH.
Локальный скрипт:
Локальный скрипт должен начинаться с #! / Path / to / интерпретатор
- #! / bin / sh для скрипта Bash
- #! / usr / bin / perl для сценария Perl
- #! / usr / bin / python для скрипта Python
- #! / usr / bin / ruby для сценария Ruby
Этот сценарий основан не на расширении локального сценария, а на #! информация.