SQLクエリファイルをシェルスクリプトで実行する

psqlコマンドのパスワードは、--password(-W)オプションでキーボードから手入力する他に、環境変数PGPASSWORDにパスワード文字列をセットする方法もあります。環境変数を用いた方法ではいちいち手入力する必要がないのでシェルスクリプトでクエリを自動実行することが可能になります。

PostgreSQLの環境変数

mysqlと違ってpsqlコマンドの--password(-W)オプションは『パスワードプロンプトを強制表示する』ものであってパスワードを指定するものではないので注意。

以下スクリプト記述例です。

PGPASSWORD=(パスワード) psql --dbname=(DB名) --username=(ユーザー名) --file=(SQLクエリファイルフルパス)

あら便利と思ったそこのあなた!以下の点に注意!!

    • パスワードをシェルスクリプトの中に直接書かない
    • 上記コマンドをシェルで直接実行するとbash_historyの中に入力したパスワードの履歴が残る

bash_historyをログアウト時に自動削除するには ~/.bash_logout ファイルに以下の文を追加します(なければ作る)

rm -f $HOME/.bash_history