Hi,
kann mir vielleicht jemand sagen, wie ich ein Backup meiner DB über die Linux Befehlszeile starten kann?
Gruß
Hi,
kann mir vielleicht jemand sagen, wie ich ein Backup meiner DB über die Linux Befehlszeile starten kann?
Gruß
hi,
ein shell skript schreiben das pg_dumpall startet und das per cron starten lassen…
cu tb.
#!/bin/sh
#
# TODO:
# * Add support for remote backups ($PASS, $HOST, $PORT)
# Database username
USER="postgres"
# Zip files? Otherwise keep this variable empty
ZIPIT=""
# Only dump these databases (separated by space) OR dump all databases
ONLYDB="db_name"
pg_dump="/usr/local/pgsql/bin/pg_dump"
psql="/usr/local/pgsql"
# Options passed to pg_dump for data and schema backups
DATA_OPTIONS="--data-only \
--inserts \
--column-inserts \
--format p \
--no-owner \
--no-reconnect \
-U $USER"
SCHEMA_OPTIONS="--create \
--schema-only \
--format p \
--no-owner \
-U $USER"
DATE=$(date +%y%m%d)
PWD='/usr/local/pg_dump'
function backup_pg_database
{
DATABASE=$1
# The output files
DATA_FILE="$PWD/$DATABASE-data_$DATE.sql"
SCHEMA_FILE="$PWD/$DATABASE-schema_$DATE.sql"
# Dump Data
echo "+ $DATABASE (data) -> $DATA_FILE"
$pg_dump $DATA_OPTIONS --file $DATA_FILE $DATABASE
# Dump Schema
echo "+ $DATABASE (schema) -> $SCHEMA_FILE"
$pg_dump $SCHEMA_OPTIONS --file $SCHEMA_FILE $DATABASE
if [ -n "$ZIPIT" ]; then
$ZIPIT $DATA_FILE
$ZIPIT $SCHEMA_FILE
fi
}
if [ -n "$1" ]; then
backup_pg_database $1
elif [ -n "$ONLYDB" ]; then
# Dump only these databases
for DB in $ONLYDB
do
backup_pg_database $DB
done
else
# Get list of databases
DB_LIST=`$psql -l -t -U $USER |cut -f1 -d\| |sed -e 's/ //g'`
for DB in $DB_LIST
do
if [ "$DB" != "template0" ] && [ "$DB" != "template1" ]; then
backup_pg_database $DB
fi
done
fi
Ich gebe zu das hab ich wo abgekupfert und nur ein bisschen verändert…
das als Script speichern und über die Shell ausführen.
Crypi