Ajout : sauvegardes automatiques des bases postgresql.
[lhc/ateliers.git] / local / backup / mysql-snapshot
index 5140ffc..d77d2bf 100755 (executable)
@@ -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')