~backup/snapshot/mysql
snapshot () {
- local database="$1"; shift
- test ! -e ~backup/snapshot/mysql/$database
+ local database="$1" && shift &&
+ test ! -e ~backup/snapshot/mysql/"$database" &&
# NOTE: soit une sauvegarde est déjà en cours,
# soit une précédente a échoué.
- can_hotcopy=yes
+ can_hotcopy=yes &&
while IFS=' ' read -r table engine
do
case $engine in
(MyISAM|ARCHIVE) :;;
(*) can_hotcopy=no;;
esac
- done <<-EOF
- $(mysql -u backup --batch --skip-column-names <<-EOF
+ done <<-EOF &&
+ $(mysql -u backup --batch --skip-column-names <<-EOF || exit 1
SELECT table_name,engine
FROM information_schema.tables
WHERE table_schema = '$database';
EOF
case $can_hotcopy in
(yes)
- cd /
+ cd / &&
sudo -u root find ~mysql-data -mindepth 1 -maxdepth 1 -type d -exec \
- install -d -m 750 -o mysql -g backup {} +
- cd - >/dev/null 2>&1
- test "${TRACE:+set}" || quiet=--quiet
+ install -d -m 750 -o mysql -g backup {} + &&
+ cd - >/dev/null 2>&1 &&
+ test "${TRACE:+set}" || quiet=--quiet &&
mysqlhotcopy --method=cp -u backup ${quiet:-} \
"$database" ~backup/snapshot/mysql
;;
(no)
install -d -m 770 -o backup -g backup \
- ~backup/snapshot/mysql/"$database"
+ ~backup/snapshot/mysql/"$database" &&
mysqldump --opt --events -u backup ${TRACE:+--verbose} \
- --result-file ~backup/snapshot/mysql/$database/dump.sql \
+ --result-file ~backup/snapshot/mysql/"$database"/dump.sql \
"$database"
;;
- esac
- eval "$@"
+ esac &&
+ eval "$@" &&
rm -rf \
~backup/snapshot/mysql/"$database"
}
EOF
fi
done <<-EOF
- $(mysql -u backup --batch --skip-column-names <<-EOF
+ $(mysql -u backup --batch --skip-column-names <<-EOF || exit 1
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name NOT IN ('information_schema', 'performance_schema')