X-Git-Url: http://git.cyclocoop.org/?p=lhc%2Fateliers.git;a=blobdiff_plain;f=local%2Fbackup%2Fpostgresql-snapshot;h=a9b3348d7655f77308b85645aea2ae1203130266;hp=da34ee005f7038a1c9d757665fea499bcf011bdd;hb=9415f166b6f0c9d08c4c2c9fb6f023c2385d6d46;hpb=f470f64ed345b194308cd5d24e6d19218a349901 diff --git a/local/backup/postgresql-snapshot b/local/backup/postgresql-snapshot index da34ee0..a9b3348 100755 --- a/local/backup/postgresql-snapshot +++ b/local/backup/postgresql-snapshot @@ -15,32 +15,31 @@ test ! $# = 0 || set -- : install -d -m 770 -o backup -g backup \ ~backup/snapshot/postgresql -snapshot () { - local database="$1" && shift && - test ! -e ~backup/snapshot/postgresql/"$database" && +trap_exit () { + errno=$? + test $errno = 0 || + cat >&2 <<-EOF + ERROR: $0 "$database" "$@" + EOF + #return $errno + } +trap trap_exit EXIT + +while IFS=' \r' read -r database + do + test "${database:+set}" + test ! -e ~backup/snapshot/postgresql/"$database" # NOTE: soit une sauvegarde est déjà en cours, # soit une précédente a échoué. install -d -m 770 -o backup -g backup \ - ~backup/snapshot/postgresql/"$database" && - psql --quiet "$database" -c "VACUUM (ANALYSE);" && + ~backup/snapshot/postgresql/"$database" + psql --quiet "$database" -c "VACUUM (ANALYSE);" pg_dump --blobs --compress 0 --format custom ${TRACE:+--verbose} \ --file ~backup/snapshot/postgresql/"$database"/dump.sql \ - "$database" && - eval "$@" && + "$database" + eval "$@" rm -rf \ - ~backup/snapshot/postgresql/"$database" && - : - } - -exit=0 -while IFS=' \r' read -r database - do if ! snapshot "$database" "$@" - then - exit=1 - cat >&2 <<-EOF - ERROR: snapshot "$database" "$@" - EOF - fi + ~backup/snapshot/postgresql/"$database" done <<-EOF $(psql --quiet --tuples-only postgres <<-EOF || exit 1 \set ON_ERROR_STOP on @@ -51,4 +50,3 @@ while IFS=' \r' read -r database EOF ) EOF -exit $exit