とらりもん - リモートサーバに対してのコマンド実行 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ログインがある。
公開鍵認証というキーワードで検索すれば、詳しい解説が出てくるので、ここでは省略するが、
公開鍵認証方式を用いることにより、パスワードの入力が不要になり、
手元サーバでシェルスクリプトを実行することにより、リモートサーバの情報取得、操作の実行が可能となる。
遠隔地にあるサーバ (リモートサーバ) に対して、手元環境にある端末からログインしたい場合、通常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ログインがある。
公開鍵認証というキーワードで検索すれば、詳しい解説が出てくるので、ここでは省略するが、
公開鍵認証方式を用いることにより、パスワードの入力が不要になり、
手元サーバでシェルスクリプトを実行することにより、リモートサーバの情報取得、操作の実行が可能となる。