シングルラインでsshでログインしてログイン先でコマンドを実行する
知らなかった。
確認した環境
- OSX ( Lion 10.7)
- Ubuntu (10.04)
リモートサーバー( 192.168.100.100 )にログイン後、リモートサーバーでコマンド( cmd )を実行するには次のようにします。
$ ssh 192.168.100.100 "cmd"
リモートサーバーのスペックを確認する
ためしに、リモートログインしてメモリー、ディスク容量、CPUコア数を確認してみます。
$ ssh 192.168.100.100 "free -m ; df -h ; cat /proc/cpuinfo | grep pr | wc -l " total used free shared buffers cached Mem: 999 574 424 0 154 332 -/+ buffers/cache: 88 911 Swap: 2924 0 2924 Filesystem Size Used Avail Use% Mounted on /dev/vda1 96G 1.7G 90G 2% / none 496M 176K 496M 1% /dev none 500M 0 500M 0% /dev/shm none 500M 36K 500M 1% /var/run none 500M 0 500M 0% /var/lock none 500M 0 500M 0% /lib/init/rw none 96G 1.7G 90G 2% /var/lib/ureadahead/debugfs 2
ちゃんとできていますね。
forで回したりすると複数台のサーバーにログインしてそれぞれのメモリー、ディスク容量、CPUコア数を確認することもできますね。
一行で!
$ ssh for ((i=100;i<131;i++));do ssh 192.168.100.${i} "free -m ; df -h ; cat /proc/cpuinfo | grep pr | wc -l " ;done
おべんり!