あるサーバーにSSHを接続し、別のサーバーにSSHを接続してから、2番目のサーバーでコマンドを実行し、両方のサーバーをシャットダウンするbashを作成しようとしています。
これまで私は得た
ssh [email protected] "ssh [email protected]; cd Dirk; source venv/bin/activate; python app.py; exit; exit;"
しかし、最初のサーバーからSSHに接続する2番目のサーバーではコマンドを実行できないようです。どうすればいいですか?
ベストアンサー1
ssh user@host
(ネストされた呼び出しのように)コマンドを引数として指定せずに実行すると、sshはシェルを起動し、コマンドが入力されるのを待ちます。
コマンドをパイプするとssh host1 ssh host 2
機能します。あなたの質問と同じ例を使用してください。
echo "cd Dirk; source venv/bin/activate; python app.py" \
| ssh [email protected] ssh [email protected]