X-Git-Url: http://git.cyclocoop.org/?p=lhc%2Fateliers.git;a=blobdiff_plain;f=local%2Fbackup%2Fmysql-snapshot;h=d77d2bf8bcc25415ffc0bba0ac1395a4c3aa270d;hp=5140ffcb45ae3e3cb5b4d70aa8c7ad771bc2ea49;hb=f5e12fec2c7ef8d743e2d3e32c3bbe37b40c7a73;hpb=6647e7fb851e2dbe5a5c7ec60358f7371bf17183 diff --git a/local/backup/mysql-snapshot b/local/backup/mysql-snapshot index 5140ffc..d77d2bf 100755 --- a/local/backup/mysql-snapshot +++ b/local/backup/mysql-snapshot @@ -16,19 +16,19 @@ install -d -m 770 -o backup -g backup \ ~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'; @@ -37,23 +37,23 @@ snapshot () { 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" } @@ -68,7 +68,7 @@ while IFS=' ' read -r 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')