ぽっぺん日記@karashi.org
2007-05-01(Tue) [長年日記]
_ AutoPostgreSQLBackup
AutoMySQLBackupをMySQLのバックアップに使っているんだけども、PostgreSQLでも同じようなものがないかなーとググってみたところ、その名もAutoPostgreSQLBackupというスクリプトを見付けた。
ただ、2005年から更新されていなくて、多少古い感じなので、さらにググってみたところ、AutoMySQLBackup2.5相当の非公式(?)パッチを見付けた(本家は2.2相当)。
非公式版を落としてきて、手元のFreeBSDで動かしてみたところ、どうやらLinuxを想定しているらしくうまく動作しなかった。と言う訳で、とりあえず、FreeBSDで動作するように下記のパッチを作成。
Index: autopostgresqlbackup
===================================================================
--- autopostgresqlbackup (revision 271)
+++ autopostgresqlbackup (working copy)
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/local/bin/bash
#
# PostgreSQL Backup Script Ver 1.1
# http://autopgsqlbackup.frozenpc.net
@@ -31,7 +31,7 @@
#=====================================================================
# Username to access the PostgreSQL server e.g. dbuser
-USERNAME=postgres
+USERNAME=pgsql
# Password
# create a file $HOME/.pgpass containing a line like this
@@ -242,7 +242,7 @@
#=====================================================================
#=====================================================================
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/postgres/bin:/usr/local/pgsql/bin
-DATE=`date +%Y-%m-%d` # Datestamp e.g 2002-09-21
+DATE=`date +%Y-%m-%d_%Hh%Mm` # Datestamp e.g 2002-09-21
DOW=`date +%A` # Day of the week e.g. Monday
DNOW=`date +%u` # Day number of the week 1 to 7 where 1 represents Monday
DOM=`date +%d` # Date of the Month e.g. 27
@@ -252,19 +252,19 @@
LOGFILE=$BACKUPDIR/$DBHOST-`date +%N`.log # Logfile Name
LOGERR=$BACKUPDIR/ERRORS_$DBHOST-`date +%N`.log # Logfile Name
BACKUPFILES=""
-OPT="--quote-names --opt" # OPT string for use with mysqldump ( see man mysqldump )
+#OPT="--quote-names --opt" # OPT string for use with mysqldump ( see man mysqldump )
# Add --compress mysqldump option to $OPT
if [ "$COMMCOMP" = "yes" ];
then
- OPT="$OPT --compress"
+ OPT="$OPT -Fc --compress"
fi
# Add --compress mysqldump option to $OPT
-if [ "$MAX_ALLOWED_PACKET" ];
- then
- OPT="$OPT --max_allowed_packet=$MAX_ALLOWED_PACKET"
- fi
+#if [ "$MAX_ALLOWED_PACKET" ];
+# then
+# OPT="$OPT --max_allowed_packet=$MAX_ALLOWED_PACKET"
+# fi
# Create required directories
if [ ! -e "$BACKUPDIR" ] # Check Backup Directory exists.
@@ -363,7 +363,7 @@
# Hostname for LOG information
if [ "$DBHOST" = "localhost" ]; then
- DBHOST="`hostname -f`"
+ DBHOST="`hostname`"
HOST=""
else
HOST="-h $DBHOST"
@@ -371,7 +371,8 @@
# If backing up all DBs on the server
if [ "$DBNAMES" = "all" ]; then
- DBNAMES="`psql -U $USERNAME $HOST -l -A -F: | sed -ne "/:/ { /Name:Owner/d; /template0/d; s/:.*$//; p }"`"
+ #DBNAMES="`psql -U $USERNAME $HOST -l -A -F: | sed -ne "/:/ { /Name:Owner/d; /template0/d; s/:.*$//; p }"`"
+ DBNAMES="`psql -U $USERNAME $HOST -l -A -F: -t | sed -e "/:/ { /Name:Owner/d; /template0/d; s/:.*$//; }"`"
# If DBs are excluded
for exclude in $DBEXCLUDE
@@ -567,7 +568,7 @@
cat "$LOGFILE"
echo
echo "###### WARNING ######"
- echo "Errors reported during AutoMySQLBackup execution.. Backup failed"
+ echo "Errors reported during AutoPostgreSQLBackup execution.. Backup failed"
echo "Error log below.."
cat "$LOGERR"
else
mysqldumpのオプションがまんま残っていたりして、なんだか作者も使っていないんじゃないかと思われる節もないではないが、とりあえず手元の環境では動いている。
今のところ、dailyバックアップまでしか想定されていないので、hourlyバックアップの機能も追加したいところ。
_ 民間刑務所で Ruby によるソフトウェア開発者を養成、アウトソーシング業務を
これは凄い。
開発言語には、教育工数が低いフレームワークを持つ Ruby を採用するとのこと。
ここは、ちょっと意味が分からないんだけど、Railsのことなのかな?
[ツッコミを入れる]
[]
本日のPingbacks(全0件)



まで頂ければ幸いです。
マタタビ潔子の猫魂(ねこだま) (ダ・ヴィンチブックス)(朱野帰子)
殺す者と殺される者 (創元推理文庫)(ヘレン・マクロイ/務台 夏子)
Xに対する逮捕状 (創元推理文庫)(フィリップ・マクドナルド/真野 明裕)
一角獣の殺人 (創元推理文庫)(カーター・ディクスン/田中 潤司)
ジャンピング・ジェニイ (創元推理文庫)(アントニイ・バークリー/狩野 一郎)