覚えておくと便利なシェルスクリプトサンプル
サーバーの運用保守をしていると、「同じことをパラメーターを変えて実行したい」と思うことが良くあります。
たとえば、
- 複数台のサーバーからscpしてファイルを取得する
- 複数台のサーバーに同一コマンドを実行する
などの場合です。
そんな時に覚えておくと便利かもしれないシェルスクリプトを書いておきます。
#!/bin/sh # 区切り文字 IFS=',' while read line do # コメントは削除 echo $line | grep -v '^#.*' > /dev/null if [ $? -eq 0 ];then # 区切り文字で分割($1,$2で取得可能) set -- $line # 処理を記載 scp root@$1:/var/log/sa/$2 . mv ./$2 ./$1"_$2" fi done < list.txt
入力ファイルである「list.txt」にはカンマ区切りで情報を記載します。
#ip address,sar file name 192.168.10.10,sa12 192.168.10.11,sa12
上記の例では、複数のサーバーからsarのログファイルを取得することが可能です。
取得元のサーバーおよびファイルは「list.txt」の外部ファイルへカンマ区切りで記載することができます。
この記事へのコメントはこちら