2006-11-17 朝は寒い
■[出来事]cronでPostgresのDBを自動的にバックアップする
まず、以下のようなスクリプトを作成した。スクリプト名はdb_dump.shである。
…は省略した部分。
#!/bin/bash … pg_dump DB名 > ~/db.bkp/db.dump …
次に、db_dump.shを自動実行する為にcronに登録する
$ crontab -e 30 1 * * * /home/postgres/bin/db_dump.sh *この行を入力 $ crontabl -l # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.10925 installed on Thu Nov 16 16:20:48 2006) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 30 1 * * * /home/postgres/bin/db_dump.sh *しっかりと登録されている
以上で終わりのはずだったんだけど、このスクリプトは期待通りの動作をしない。
cronでdb_dump.shが実行されると、サイズが0のdb.dumpというファイルが出来上がる。
ネットで調べてみると、どうやらcron用のパスを設定していないのでpg_dumpが実行されていないとのことだった。
db_dump.shのpb_dumpを/usr/local/pgsql/bin/pg_dumpと指定することで期待通りの動作をする。
以下は修正版のスクリプトである。
#!/bin/bash
…
/usr/local/pgsql/bin/pg_dump DB名 > ~/db.bkp/db.dump
…
cronについてもっと調べる必要がありそうだ。
参考:
cron と pg_dump で自動バックアップでの問題
http://ml.postgresql.jp/pipermail/pgsql-jp/2006-April/020582.html
■[出来事]気になる記事:pg_dumpをcronで実行する際にエラー発生
問題
pg_dumpをcronで自動実行したいが、パスワードの入力が必要となりエラーが発生。
解決方法
cronを実行するユーザのホームディレクトリに.pgpassというファイルを作る。
参考リンク
- サバカン日記
- 28.12. パスワードファイル
- PostgreSQLに関する質問です
■[出来事]気になる記事
- Linuxを使ってみる: cronでpostgresのdb自動バックアップ
他人が書いたスクリプトを見るのは勉強になります。
- @IT:システム管理の基礎 syslogdの設定をマスターしよう(3/3)logrotateによるログローテーションの設定
ログファイルでよくある
- 何とか.1
- 何とか.2
- 何とか.3
- 何とか.4
って、こうやって作られるのかーなるほどなるほど。