とらりもんHOME  Index  Search  Changes  Login

SSHを利用したリモートサーバに対するコマンド実行

sshとscp

遠隔地にあるサーバ (リモートサーバ) に対して、手元環境にある端末からログインしたい場合、通常SSHを使用する。 SSHは、リモートサーバにsshdサーバが実装されていることが条件であるが、最近のLinux server はほぼデフォルトでインストールされている。 仮にインストールされていない場合であっても用意にインストール可能である。

一方、リモートサーバ上にある任意のファイルを取得したい場合は、scpコマンドを使用する。 scp コマンドを実行するためには、sshと同様、リモートサーバにsshdサーバが必要である。

ssh を利用したコマンド実行

上記以外のケースとして、リモートサーバに対して何らかの処理を実行したい場合がある。 例えば、リモートサーバのディスク容量を調べたい場合、sshでログインした後、dfコマンドを実行し、ディスク容量を把握する。 定期的にデータを取得しリモートサーバに蓄積していく場合、リモートサーバのディスク容量を監視することは必須である。 1台のリモートサーバに対して実行する場合は、前記の通り、sshでログインし、dfコマンドを手動で実行すれば良いが、 複数台のリモートサーバに対して実行することは、大変手間である。 ここでsshを用いたコマンド実行機能を使用する。sshでは下記のように記述することによって、 リモートサーバに対して任意のコマンドが実行可能である。

ssh <user>@<ipaddress> "<コマンド>"

例えば、ディスクの容量を監視したい場合、

ssh <user>@<ipaddress> "df"

とすればよい。

また<コマンド> の部分は、下記の1 or2 のように記述することによって複数コマンドの実行が可能である。

1.

ssh <user>@<ipaddress> "df ; ls ; date"

2.

cat << EOF > /tmp/CMD.txt
df
ls
date
EOF
CMD=`cat /tmp/CMD.txt`
rm /tmp/CMD.txt
ssh <user>@<ipaddress> "$CMD"

sshによるコマンド実行と公開鍵認証によるsshのノンパスワード設定

ssh では通常パスワードの入力を手動で行わないと、リモートサーバにログインできない。 そのため通常のsshでは、せっかくコマンド実行をしても、パスワード入力の手間から解放されない。

しかし、sshのログイン方法の一つとして、公開鍵認証によるsshログインがある。 公開鍵認証というキーワードで検索すれば、詳しい解説が出てくるので、ここでは省略するが、 公開鍵認証方式を用いることにより、パスワードの入力が不要になり、

手元サーバでシェルスクリプトを実行することにより、リモートサーバの情報取得、操作の実行が可能となる。

Last modified:2013/08/28 02:25:02
Keyword(s):
References:[とらりもんHOME]