覚えておくと便利なシェルスクリプトサンプル

 

サーバーの運用保守をしていると、「同じことをパラメーターを変えて実行したい」と思うことが良くあります。

たとえば、

  • 複数台のサーバーから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」の外部ファイルへカンマ区切りで記載することができます。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。