Skip to content

Commit aa722f2

Browse files
committed
Improved Backup Scripts
Fixed some bugs in the backup scripts and improved their directory structure.
1 parent eb6d88d commit aa722f2

7 files changed

Lines changed: 29 additions & 27 deletions

File tree

scripts/functions/cron/daily-database-backup.sh

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,37 +40,39 @@ PHP_FILE="${NOW}-php.tar.gz";
4040
SSL_FILE="${NOW}-ssl-keys.gz";
4141
UPLOADS_FILE="${NOW}-uploads.tar.gz";
4242
VHOST_FILE="${NOW}-nginx-vhost.conf.gz";
43-
WPCONFIG_FILE="${NOW}-wp-config.gz";
43+
WPCONFIG_FILE="${NOW}-wp-config.php.gz";
4444
WPCONTENT_FILE="${NOW}-wp-content.gz";
4545

4646
for i in "${SITES[@]}"
4747
do
4848
cd "/var/www/sites/$i/html"
4949

5050
# Local Database Backup
51-
wp db export "/home/EngineScript/site-backups/$i/database/daily/$DATABASE_FILE" --add-drop-table --allow-root
51+
mkdir -p /home/EngineScript/site-backups/$i/database/daily/${NOW}
52+
wp db export "/home/EngineScript/site-backups/$i/database/daily/${NOW}/$DATABASE_FILE" --add-drop-table --allow-root
5253

5354
# Compress Database
54-
gzip -f "/home/EngineScript/site-backups/$i/database/daily/$DATABASE_FILE"
55+
gzip -f "/home/EngineScript/site-backups/$i/database/daily/${NOW}/$DATABASE_FILE"
5556

5657
# wp-config.php backup
57-
gzip -cf "/var/www/sites/$i/html/wp-config.php" > /home/EngineScript/site-backups/$i/wp-config/$WPCONFIG_FILE
58+
mkdir -p /home/EngineScript/site-backups/$i/wp-config/daily/${NOW}
59+
gzip -cf "/var/www/sites/$i/html/wp-config.php" > /home/EngineScript/site-backups/$i/wp-config/daily/${NOW}/$WPCONFIG_FILE
5860

5961
# Amazon S3 Database Backup
6062
if [ $INSTALL_S3_BACKUP = 1 ] && [ $S3_BUCKET_NAME != PLACEHOLDER ] && [ $DAILY_S3_DATABASE_BACKUP = 1 ];
6163
then
62-
/usr/local/bin/aws s3 cp "/home/EngineScript/site-backups/$i/database/daily/$DATABASE_FILE.gz" "s3://$i/backups/database/daily" --storage-class STANDARD
63-
/usr/local/bin/aws s3 cp "/home/EngineScript/site-backups/$i/database/daily/$WPCONFIG_FILE" "s3://$i/backups/database/daily" --storage-class STANDARD
64+
/usr/local/bin/aws s3 cp "/home/EngineScript/site-backups/$i/database/daily/${NOW}/$DATABASE_FILE.gz" "s3://${S3_BUCKET_NAME}/$i/backups/database/daily/${NOW}/$DATABASE_FILE.gz" --storage-class STANDARD
65+
/usr/local/bin/aws s3 cp "/home/EngineScript/site-backups/$i/wp-config/daily/${NOW}/$WPCONFIG_FILE" "s3://${S3_BUCKET_NAME}/$i/backups/wp-config/daily/${NOW}/$WPCONFIG_FILE" --storage-class STANDARD
6466
fi
6567

6668
# Dropbox Database Backup
6769
if [ $INSTALL_DROPBOX_BACKUP = 1 ] && [ $DAILY_DROPBOX_DATABASE_BACKUP = 1 ];
6870
then
69-
/usr/local/bin/dropbox-uploader/dropbox_uploader.sh -kqs upload /home/EngineScript/site-backups/$i/database/daily/$DATABASE_FILE /$i/backups/database/daily
70-
/usr/local/bin/dropbox-uploader/dropbox_uploader.sh -kqs upload /home/EngineScript/site-backups/$i/database/daily/$WPCONFIG_FILE /$i/backups/database/daily
71+
/usr/local/bin/dropbox-uploader/dropbox_uploader.sh -kqs upload /home/EngineScript/site-backups/$i/database/daily/${NOW}/$DATABASE_FILE /$i/backups/database/daily/${NOW}
72+
/usr/local/bin/dropbox-uploader/dropbox_uploader.sh -kqs upload /home/EngineScript/site-backups/$i/wp-config/daily/${NOW}/$WPCONFIG_FILE /$i/backups/wp-config/daily/${NOW}/$WPCONFIG_FILE
7173
fi
7274

7375
# Remove Old Backups
74-
find /home/EngineScript/site-backups/$i/database/daily -type f -mtime +7 | xargs rm -fR
75-
find /home/EngineScript/site-backups/$i/wp-config -type f -mtime +7 | xargs rm -fR
76+
find /home/EngineScript/site-backups/$i/database/daily -type d,f -mtime +30 | xargs rm -fR
77+
find /home/EngineScript/site-backups/$i/wp-config -type d,f -mtime +30 | xargs rm -fR
7678
done

scripts/functions/cron/hourly-database-backup.sh

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,32 +40,33 @@ PHP_FILE="${NOW}-php.tar.gz";
4040
SSL_FILE="${NOW}-ssl-keys.gz";
4141
UPLOADS_FILE="${NOW}-uploads.tar.gz";
4242
VHOST_FILE="${NOW}-nginx-vhost.conf.gz";
43-
WPCONFIG_FILE="${NOW}-wp-config.gz";
43+
WPCONFIG_FILE="${NOW}-wp-config.php.gz";
4444
WPCONTENT_FILE="${NOW}-wp-content.gz";
4545

4646
for i in "${SITES[@]}"
4747
do
4848
cd "/var/www/sites/$i/html"
4949

5050
# Local Database Backup
51-
wp db export "/home/EngineScript/site-backups/$i/database/hourly/$DATABASE_FILE" --add-drop-table --allow-root
51+
mkdir -p /home/EngineScript/site-backups/$i/database/hourly/${NOW}
52+
wp db export "/home/EngineScript/site-backups/$i/database/hourly/${NOW}/$DATABASE_FILE" --add-drop-table --allow-root
5253

5354
# Compress Database
54-
gzip -f "/home/EngineScript/site-backups/$i/database/hourly/$DATABASE_FILE"
55+
gzip -f "/home/EngineScript/site-backups/$i/database/hourly/${NOW}/$DATABASE_FILE"
5556

5657
# Amazon S3 Database Backup
5758
if [ $INSTALL_S3_BACKUP = 1 ] && [ $S3_BUCKET_NAME != PLACEHOLDER ] && [ $HOURLY_S3_DATABASE_BACKUP = 1 ];
5859
then
59-
/usr/local/bin/aws s3 cp "/home/EngineScript/site-backups/$i/database/hourly/$DATABASE_FILE.gz" "s3://$i/backups/database/daily" --storage-class STANDARD
60+
/usr/local/bin/aws s3 cp "/home/EngineScript/site-backups/$i/database/hourly/${NOW}/$DATABASE_FILE.gz" "s3://${S3_BUCKET_NAME}/$i/backups/database/hourly/${NOW}/$DATABASE_FILE.gz" --storage-class STANDARD
6061
fi
6162

6263
# Dropbox Database Backup
6364
if [ $INSTALL_DROPBOX_BACKUP = 1 ] && [ $HOURLY_DROPBOX_DATABASE_BACKUP = 1 ];
6465
then
65-
/usr/local/bin/dropbox-uploader/dropbox_uploader.sh -kqs upload /home/EngineScript/site-backups/$i/database/daily/$DATABASE_FILE /$i/backups/database/daily
66+
/usr/local/bin/dropbox-uploader/dropbox_uploader.sh -kqs upload /home/EngineScript/site-backups/$i/database/hourly/${NOW}/$DATABASE_FILE /$i/backups/database/hourly/${NOW}
6667
fi
6768

6869
# Remove Old Backups
69-
find /home/EngineScript/site-backups/$i/database/hourly -type f -mtime +1 | xargs rm -fR
70+
find /home/EngineScript/site-backups/$i/database/hourly -type d,f -mtime +1 | xargs rm -fR
7071

7172
done

scripts/functions/cron/nginx-backup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ PHP_FILE="${NOW}-php.tar.gz";
3434
SSL_FILE="${NOW}-ssl-keys.gz";
3535
UPLOADS_FILE="${NOW}-uploads.tar.gz";
3636
VHOST_FILE="${NOW}-nginx-vhost.conf.gz";
37-
WPCONFIG_FILE="${NOW}-wp-config.gz";
37+
WPCONFIG_FILE="${NOW}-wp-config.php.gz";
3838
WPCONTENT_FILE="${NOW}-wp-content.gz";
3939

4040
# Backup Nginx Config

scripts/functions/cron/php-backup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ PHP_FILE="${NOW}-php.tar.gz";
3434
SSL_FILE="${NOW}-ssl-keys.gz";
3535
UPLOADS_FILE="${NOW}-uploads.tar.gz";
3636
VHOST_FILE="${NOW}-nginx-vhost.conf.gz";
37-
WPCONFIG_FILE="${NOW}-wp-config.gz";
37+
WPCONFIG_FILE="${NOW}-wp-config.php.gz";
3838
WPCONTENT_FILE="${NOW}-wp-content.gz";
3939

4040
# Backup PHP Config

scripts/functions/cron/weekly-wp-content-backup.sh

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,28 +40,29 @@ PHP_FILE="${NOW}-php.tar.gz";
4040
SSL_FILE="${NOW}-ssl-keys.gz";
4141
UPLOADS_FILE="${NOW}-uploads.tar.gz";
4242
VHOST_FILE="${NOW}-nginx-vhost.conf.gz";
43-
WPCONFIG_FILE="${NOW}-wp-config.gz";
43+
WPCONFIG_FILE="${NOW}-wp-config.php.gz";
4444
WPCONTENT_FILE="${NOW}-wp-content.gz";
4545

4646
for i in "${SITES[@]}"
4747
do
4848
cd "/var/www/sites/$i/html"
4949

5050
# Local WP-Content Backup
51-
tar -zcf "/home/EngineScript/site-backups/$i/wp-content/$WPCONTENT_FILE" wp-content
51+
mkdir -p /home/EngineScript/site-backups/$i/wp-content/weekly/${NOW}
52+
tar -zcf "/home/EngineScript/site-backups/$i/wp-content/weekly/$WPCONTENT_FILE" wp-content
5253

5354
# Amazon S3 WP-Content Backup
5455
if [ $INSTALL_S3_BACKUP = 1 ] && [ $S3_BUCKET_NAME != PLACEHOLDER ] && [ $WEEKLY_S3_WPCONTENT_BACKUP = 1 ];
5556
then
56-
/usr/local/bin/aws s3 cp "/home/EngineScript/site-backups/$i/wp-content/$WPCONTENT_FILE" "s3://$i/backups/wp-content" --storage-class STANDARD
57+
/usr/local/bin/aws s3 cp "/home/EngineScript/site-backups/$i/wp-content/weekly/$WPCONTENT_FILE" "s3://${S3_BUCKET_NAME}/$i/backups/wp-content/weekly/$WPCONTENT_FILE" --storage-class STANDARD
5758
fi
5859

5960
# Dropbox WP-Content Backup
6061
if [ $INSTALL_DROPBOX_BACKUP = 1 ] && [ $WEEKLY_DROPBOX_WPCONTENT_BACKUP = 1 ];
6162
then
62-
/usr/local/bin/dropbox-uploader/dropbox_uploader.sh -kqs upload /home/EngineScript/site-backups/$i/wp-content/$WPCONTENT_FILE /$i/backups/wp-content
63+
/usr/local/bin/dropbox-uploader/dropbox_uploader.sh -kqs upload /home/EngineScript/site-backups/$i/wp-content/weekly/$WPCONTENT_FILE /$i/backups/wp-content/weekly
6364
fi
6465

6566
# Remove Old Backups
66-
find /home/EngineScript/site-backups/$i/wp-content -type f -mtime +7 | xargs rm -fR
67+
find /home/EngineScript/site-backups/$i/wp-content -type d,f -mtime +7 | xargs rm -fR
6768
done

scripts/install/vhost/vhost-backup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ PHP_FILE="${NOW}-php.tar.gz";
3737
SSL_FILE="${NOW}-ssl-keys.gz";
3838
UPLOADS_FILE="${NOW}-uploads.tar.gz";
3939
VHOST_FILE="${NOW}-nginx-vhost.conf.gz";
40-
WPCONFIG_FILE="${NOW}-wp-config.gz";
40+
WPCONFIG_FILE="${NOW}-wp-config.php.gz";
4141
WPCONTENT_FILE="${NOW}-wp-content.gz";
4242

4343
for i in "${SITES[@]}"

scripts/install/vhost/vhost-install.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ fi
107107

108108
# Store SQL credentials
109109
echo "SITE_URL=\"${DOMAIN}\"" >> /home/EngineScript/mysql-credentials/${DOMAIN}.txt
110-
echo ""
111110

112111
# Add Domain to Site List
113112
sed -i "\/SITES\=(/a\
@@ -209,7 +208,6 @@ echo "" >> /home/EngineScript/mysql-credentials/${DOMAIN}.txt
209208
source /home/EngineScript/mysql-credentials/${DOMAIN}.txt
210209

211210
echo "Randomly generated MySQL database credentials for ${SITE_URL}."
212-
echo ""
213211

214212
sudo mysql -u root -p${MARIADB_ADMIN_PASSWORD} -e "CREATE DATABASE ${DB} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
215213
sudo mysql -u root -p${MARIADB_ADMIN_PASSWORD} -e "CREATE USER '${USR}'@'localhost' IDENTIFIED BY '${PSWD}';"
@@ -371,7 +369,7 @@ PHP_FILE="${NOW}-php.tar.gz";
371369
SSL_FILE="${NOW}-ssl-keys.gz";
372370
UPLOADS_FILE="${NOW}-uploads.tar.gz";
373371
VHOST_FILE="${NOW}-nginx-vhost.conf.gz";
374-
WPCONFIG_FILE="${NOW}-wp-config.gz";
372+
WPCONFIG_FILE="${NOW}-wp-config.php.gz";
375373
WPCONTENT_FILE="${NOW}-wp-content.gz";
376374

377375
cd "/var/www/sites/${SITE_URL}/html"

0 commit comments

Comments
 (0)