PostgreSQL の VACUUM 処理を書いたスクリプトを cron で自動実行したいのだが、このサーバは現在、UNIX ドメインからの DB への接続でもパスワード認証が必要な設定にしている。深い意味はなくて、うちでサーバ運用を引き継いだ時そういう設定になってたからそのままにしているだけだ。
そうすると、sh スクリプトの中で vacuumdb とか実行すると、対話式にパスワード入力を求めてくるんだよね。cron で自動実行するスクリプトでこれはまずいやろう。
そこで、.pgpass を用意したり、PASSWORD や PGPASSWD といった環境変数にパスワードを予めセットしてみたりしたんだが、全然効かんやん。
そもそも、このサーバ、地元大手の某プロバイダのホスティングサービスを利用してるんだけど、環境が「やたらセキュアな仮想サーバ」なんだよね。
PostgreSQL も「vinstall というコマンドで、仮想OSが用意しているバイナリをインストールしてください。yum とかで入れるのやめてください。ソースから make?絶対だめです」って感じ(^^;。仕方無いから言われるとおり、その vinstall ってコマンドで入れたヤツなんだよね。
で、そうして入れた psql や vacuumdb コマンドには、-w(--no-password)オプションも無い。
多分、「.pgpass や環境変数へパスワードをセットするのは危険」という思想なんだろうなあ(^^;
「外は危ないから、一生家から出るな」っていうセキュリティ思想だよね。馬鹿だよね(笑)
で、仕方ないので、pg_hba.conf を触って UNIX ドメインの認証方式を trust に設定。
これで、問題なく cron でスクリプトを実行出来るようになった。
何か、本末転倒なセキュリティ対策やなあ。
いや、ホント、この仮想 OS 嫌いだわ。どう考えても愚者のための OS なんだもん(^^;
コメントする