cron で VACUUM (vacuumdb と .pgpass)

先ほど EC-CUBEなサイトの夜間 VACUUM 設定が完了したのでメモ。

まずは、以下の感じで crontab に vacuumdb コマンドの実行を指定。この設定だと 4時0分にコマンドが起動される。

0 4 * * * /usr/bin/vacuumdb --analyze -U databaseuser databasename

crontab(1) コマンドは忘れた事無いけど、一応老後の為に書いておく。以下のようにする事で、username さんの権限で起動するコマンドが指定出来る(例えば、nologin なユーザの設定をしたいときに使う)。

crontab -u username -e

ついでに中身だけ見るときは

crontab -u username -l

一応、安全の為にデータベースのユーザにはパスワード設定していると思う。普通にコマンドラインで上記コマンドを実行すると、パスワードを聞かれる。

% /usr/bin/vacuumdb --analyze -U databaseuser databasename
Password:

cron(8) のなかでは、パスワード入力出来ないし、どうすればよいかというと、.pgpass ファイルに指定しておく。

hostname:port:database:username:password

たとえば、こんな感じ。

localhost:5432:hogehodb:dbuser:password

*(アスタリスク)を使って指定する事もOK。

*:*:*:dbuser:password

このファイル、パーミッションを Group や Other に read できないようにしておかないと読み込んでくれないらしい。

chmod go-rwx ~/.pgpass

新しいコメントの投稿

このフィールドの内容は非公開にされ、公表されることはありません。
  • HTMLタグは使用できません
  • 行と段落は自動的に折り返されます。

書式オプションに関するより詳しい情報...