とらりもんHOME  Index  Search  Changes  Login

とらりもん - リモートサーバに対してのコマンド実行 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

! 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ログインがある。
公開鍵認証というキーワードで検索すれば、詳しい解説が出てくるので、ここでは省略するが、
公開鍵認証方式を用いることにより、パスワードの入力が不要になり、

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