Database JUNKY

MySQL,MariaDBを中心としたブログです

shellをリモートのホストで実行する方法

実行するシェルをリモートで実行させたい場合は、こんな風に書いてやってます。 以下は、AサーバからBサーバ(b-server)へlsコマンドを実行している例です

f:id:hit10231023:20180308234003p:plain

あくまでも例なのですが、AサーバからBサーバ(b-server)へlsコマンドを実行している例です b-serverでshellは実行されますが、結果(標準出力)は、a-serverに戻って来ますので、以外と便利だったりします。

cat a_server_to_b_server.sh
-------------------------------------
#!/bin/bash


_SHELL="/usr/local/shell/test_shell.sh"

cat << '_EOT_' > ${_SHELL}
#!/bin/bash

ls -l

exit 0


_EOT_

chmod 775 ${_SHELL}

# b-server で${_SHELL} を実行してって意味
ssh user@b-server  'bash' < ${_SHELL}
# ###############################

exit 0
-------------------------------------

ただ、b-serverに対して、認証をかけない設定をしないと実行することができないので、公開鍵なので実行したほうがいいかもですね。(でも公開鍵の取り扱いはほんと注意してください