diff --git a/src/borgwrapper b/src/borgwrapper index bf67f05..37e784e 100755 --- a/src/borgwrapper +++ b/src/borgwrapper @@ -36,11 +36,11 @@ save_package_list () { return 2 fi - if [ ! -d dirname "${PACKAGE_LIST_FILE}" ]; then - mkdir -p dirname "${PACKAGE_LIST_FILE}" + if [ ! -d "${PACKAGE_LIST_DIRECTORY}" ]; then + mkdir -p "${PACKAGE_LIST_DIRECTORY}" fi - apt-mark showmanual > ${PACKAGE_LIST_FILE} + apt-mark showmanual > "${PACKAGE_LIST_DIRECTORY}package-list.txt" } dump_sql () { @@ -48,11 +48,13 @@ dump_sql () { return 2 fi - if [ ! -d dirname "${MYSQL_DUMP_FILE}" ] - then mkdir -p dirname "{$MYSQL_DUMP_FILE}" + if [ ! -d "${MYSQL_DUMP_DIRECTORY}" ] + then mkdir -p "${MYSQL_DUMP_DIRECTORY}" fi - + for DB in $(mysql -u 'root' -e 'show databases' -s --skip-column-names); do + mysqldump --single-transaction -u 'root' "${DB}" > "${MYSQL_DUMP_DIRECTORY}${DB}.sql.bak"; + done } dump_mongo () { @@ -60,9 +62,11 @@ dump_mongo () { return 2 fi - if [ ! -d dirname "${MONGODB_DUMP_FILE}" ] - then mkdir -p dirname "{$MONGODB_DUMP_FILE}" + if [ ! -d "${MONGODB_DUMP_DIRECTORY}" ] + then mkdir -p "${MONGODB_DUMP_DIRECTORY}/mongodump" fi + + mongodump --out "${MONGODB_DUMP_DIRECTORY}/mongodump" } @@ -272,6 +276,10 @@ mkdir -p "${LOCKDIR}" borg_init elif [[ ${MODE} == "backup" ]]; then trap 'exit_backup $?' ERR INT TERM + save_package_list + dump_mongo + dump_sql + borg_backup borg_prune exit_backup 0 diff --git a/src/config.example b/src/config.example index 48fa786..8d64c06 100644 --- a/src/config.example +++ b/src/config.example @@ -7,12 +7,9 @@ BORG_REPO="@:/srv/borg/${SYSTEM_NAME}" #BORG_REPO="ssh://@:/srv/borg/${SYSTEM_NAME}" BORG_PASSPHRASE="longandcomplexpassphrase" -PACKAGE_LIST_FILE="/srv/dumps/package-list.txt" -MYSQL_DUMP_FILE="/srv/dumps/mysql-dump.sql.bak" -MONGODB_DUMP_FILE="/srv/dumps/mongodb-dump.bak" - -MYSQL_ROOT_PASSWORD="" -MONGODB_ROOT_PASSWORD="" +PACKAGE_LIST_DIRECTORY="/srv/dumps/" +MYSQL_DUMP_DIRECTORY="/srv/dumps/" +MONGODB_DUMP_DIRECTORY="/srv/dumps/" PATHS=( "/etc" diff --git a/src/mongodump-test.sh b/src/mongodump-test.sh new file mode 100644 index 0000000..226424c --- /dev/null +++ b/src/mongodump-test.sh @@ -0,0 +1,15 @@ +#! /bin/bash + +dump_mongo () { + if ! which mongodump; then + return 2 + fi + + if [ ! -d "${MONGODB_DUMP_DIRECTORY}" ] + then mkdir -p "${MONGODB_DUMP_DIRECTORY}/mongodump" + fi + + mongodump --out "${MONGODB_DUMP_DIRECTORY}/mongodump" +} + +dump_mongo diff --git a/src/mysqldump-test.sh b/src/mysqldump-test.sh new file mode 100644 index 0000000..ec19dea --- /dev/null +++ b/src/mysqldump-test.sh @@ -0,0 +1,17 @@ +#! /bin/bash + +dump_sql () { + if ! which mysqldump; then + return 2 + fi + + if [ ! -d "${MYSQL_DUMP_DIRECTORY}" ] + then mkdir -p "${MYSQL_DUMP_DIRECTORY}" + fi + + for DB in $(mysql -u 'root' -e 'show databases' -s --skip-column-names); do + mysqldump --single-transaction -u 'root' "${DB}" > "${MYSQL_DUMP_DIRECTORY}${DB}.sql.bak"; + done +} + +dump_sql