diff --git a/.gitignore b/.gitignore index 6be808d..691138a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /wordpress.conf /backup +/data/app diff --git a/backup.sh b/backup.sh new file mode 100755 index 0000000..9e4fea8 --- /dev/null +++ b/backup.sh @@ -0,0 +1,29 @@ +#!/bin/bash + + +# backup directory +backupDir=./backup +mkdir -p ${backupDir} +mkdir -p ${backupDir}/db +mkdir -p ${backupDir}/conf +mkdir -p ${backupDir}/app + +# current date +currentDate=$(date +"%Y-%m-%d_%H-%M-%S") + + +# backup mysql +dbFile="${backupDir}/db/${currentDate}.sql" +docker-compose exec wordpress-database sh -c 'exec mysqldump --lock-tables --default-character-set=utf8mb4 -uroot -p"${MYSQL_ROOT_PASSWORD}" ${MYSQL_DATABASE}' > ${dbFile} +sed -i "/^mysqldump: \\[Warning\\]/d" ${dbFile} +tar -cj ${dbFile} -f "${dbFile}.tbz2" +rm ${dbFile} + +# backup config files (sudo do prevent permissions) +sudo tar -cj wordpress.conf -f "${backupDir}/conf/${currentDate}.tbz2" + +# backup config files +sudo tar -cj data/app -f "${backupDir}/app/${currentDate}.tbz2" + +# delete all files older 30 days +#find ${backupDir} -iname "*.tbz2" -type f -mtime +10 -exec rm {} \; > /dev/null