Amazon AWS からRDSに接続するコマンド
まずAWSのEC2サーバーからRDSに正常に接続可能かEC2にログインした後に以下のコマンドを実行し確認してみます。
psql -h [RDSエンドポイント] -U [RDSID]
パスワードが聞かれるので[RDSパスワード]を入力するとRDSのPostgreSQLにつながります。繋がらない場合はAWSの管理画面から設定を確認してみてください。
シェルスクリプトからPostgreSQLに接続し情報を取得する
パスワードを記憶させる
シェル内からPsqlコマンド叩くときパスワードをオプションで記述したりできなさそうなので、パスワード等を記憶させていきます。ユーザのホームディレクトリに遷移します。【.pgpass】ファイルを作成します。
コマンド
cd ~
vi ./.pgpass
.pgpassファイル
[RDSエンドポイント]:[DB名]:[RDSID]:[password]
ShellScript
ユーザめんどくさいので適当にルートユーザにしてますが、適宜ユーザは作成した方が良いと思います。
#!/bin/bash
SelectSQL="SELECT COUNT(*) FROM [テーブル名];"
result=`su -c"psql -h [RDSエンドポイント] -U [RDSID] [DB名] -Atqc \"${SelectSQL}\""`
echo ${result}
実行結果
1