技術メモのかけら

内容はもとより調べたことすら忘れてしまうので個人的な技術メモを残しているブログです。Qiitaの記事にするほどでもない細かいネタを投稿します。

postgreSQLに接続するシェルのテンプレート

個人的メモ。
たくさんのDBにまとめて同じSQLを実行するテンプレート。
SQLをヒアドキュメントで書くようにしてるけど、長くなるようだったら外出しにしよう。

#!/bin/sh

#DBサーバとインスタンスの指定
SETTINGS=("dbserv01 db01" "dbserv01 db02" "dbserv02 db01")

for setting in "${SETTINGS[@]}"
do

#半角スペース区切りの文字列を配列に変換
conf=(`echo $setting`)

psql -e -U postgres -h ${conf[0]} ${conf[1]} >logs/normal.log 2>logs/error.log << EOF

set client_min_messages to warning;
/* 実行するSQLを記述 */

EOF

if [ ! -s logs/error.log ]; then
  /bin/rm logs/error.log
else
  echo "なんかエラーだってさ"
  /bin/cat logs/error.log
fi

done

exit