install -d -m 770 -o backup -g backup \
~backup/snapshot/mysql
-snapshot () {
- local database="$1"; shift
+trap_exit () {
+ errno=$?
+ test $errno = 0 ||
+ cat >&2 <<-EOF
+ ERROR: $0 "$database" "$@"
+ EOF
+ #return $errno
+ }
+trap trap_exit EXIT
+
+while IFS='' read -r database
+ do
+ test "${database:+set}"
test ! -e ~backup/snapshot/mysql/$database
# NOTE: soit une sauvegarde est déjà en cours,
# soit une précédente a échoué.
eval "$@"
rm -rf \
~backup/snapshot/mysql/"$database"
- }
-
-exit=0
-while IFS=' ' read -r database
- do if ! snapshot "$database" "$@"
- then
- exit=1
- cat >&2 <<-EOF
- ERROR: snapshot "$database" "$@"
- EOF
- fi
done <<-EOF
$(mysql -u backup --batch --skip-column-names <<-EOF
SELECT schema_name
EOF
)
EOF
-exit $exit