-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathvhost-backup.sh
More file actions
73 lines (56 loc) · 3.27 KB
/
vhost-backup.sh
File metadata and controls
73 lines (56 loc) · 3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env bash
#----------------------------------------------------------------------------------
# EngineScript - A High-Performance WordPress Server Built on Ubuntu and Cloudflare
#----------------------------------------------------------------------------------
# Website: https://EngineScript.com
# GitHub: https://github.com/Enginescript/EngineScript
# License: GPL v3.0
#----------------------------------------------------------------------------------
# EngineScript Variables
source /usr/local/bin/enginescript/enginescript-variables.txt || { echo "Error: Failed to source /usr/local/bin/enginescript/enginescript-variables.txt" >&2; exit 1; }
source /home/EngineScript/enginescript-install-options.txt || { echo "Error: Failed to source /home/EngineScript/enginescript-install-options.txt" >&2; exit 1; }
# Source shared functions library
source /usr/local/bin/enginescript/scripts/functions/shared/enginescript-common.sh || { echo "Error: Failed to source /usr/local/bin/enginescript/scripts/functions/shared/enginescript-common.sh" >&2; exit 1; }
#----------------------------------------------------------------------------------
# Start Main Script
#----------------------------------------------------------------------------
# Forked from https://github.com/A5hleyRich/simple-automated-tasks
# Include config
source /home/EngineScript/sites-list/sites.sh
# Date
NOW=$(date +%m-%d-%Y-%H)
# Filenames
DATABASE_FILE="${NOW}-database.sql";
FULLWPFILES="${NOW}-wordpress-files.gz";
NGINX_FILE="${NOW}-nginx-vhost.conf.gz";
PHP_FILE="${NOW}-php.tar.gz";
SSL_FILE="${NOW}-ssl-keys.gz";
UPLOADS_FILE="${NOW}-uploads.tar.gz";
VHOST_FILE="${NOW}-nginx-vhost.conf.gz";
WPCONFIG_FILE="${NOW}-wp-config.php.gz";
WPCONTENT_FILE="${NOW}-wp-content.gz";
for i in "${SITES[@]}"
do
cd "/var/www/sites/${i}/html"
# Backup database
wp db export "/home/EngineScript/site-backups/${i}/database/daily/${DATABASE_FILE}" --add-drop-table --allow-root
# Compress database file
gzip -f "/home/EngineScript/site-backups/${i}/database/daily/${DATABASE_FILE}"
# Backup uploads directory
#tar -zcf "/home/EngineScript/site-backups/${i}/wp-uploads/${UPLOADS_FILE}" wp-content/uploads
# Backup uploads, themes, and plugins
tar -zcf "/home/EngineScript/site-backups/${i}/wp-content/${WPCONTENT_FILE}" wp-content
# Nginx vhost backup
gzip -cf "/etc/nginx/sites-enabled/${i}.conf" > "/home/EngineScript/site-backups/${i}/nginx/${VHOST_FILE}"
# SSL keys backup
tar -zcf "/home/EngineScript/site-backups/${i}/ssl-keys/${SSL_FILE}" "/etc/nginx/ssl/${i}"
# wp-config.php backup
gzip -cf "/var/www/sites/${i}/html/wp-config.php" > "/home/EngineScript/site-backups/${i}/wp-config/${WPCONFIG_FILE}"
# Remove old backups
find "/home/EngineScript/site-backups/${i}/database/daily" -type f -mtime +7 | xargs rm -fR
find "/home/EngineScript/site-backups/${i}/nginx" -type f -mtime +7 | xargs rm -fR
find "/home/EngineScript/site-backups/${i}/ssl-keys" -type f -mtime +7 | xargs rm -fR
find "/home/EngineScript/site-backups/${i}/wp-config" -type f -mtime +7 | xargs rm -fR
find "/home/EngineScript/site-backups/${i}/wp-content" -type f -mtime +15 | xargs rm -fR
find "/home/EngineScript/site-backups/${i}/wp-uploads" -type f -mtime +15 | xargs rm -fR
done