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 #for Ruby
段階的な説明
このスクリプトは次の操作を実行します: 1° は最初の行をキャッチします #! インタープリターを取得するには (つまり、Perl、Python、Ruby、Bash インタープリター)、2° は SSH 経由でリモート インターピーターを開始し、3° はすべてのスクリプト本体を SSH 経由で送信します。
ローカル スクリプト:
ローカル スクリプトは #!/path/to/interpreter で開始する必要があります
- #!/bin/sh for Bash script
- #!/usr/bin/perl for Perl script
- #!/usr/bin/python for Python script
- #!/usr/bin/ruby for Ruby script
このスクリプトは、ローカル スクリプト拡張子ではなく、#! に基づいています。情報。