forked from littlebizzy/slickstack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathss-dump.txt
88 lines (68 loc) · 5.21 KB
/
ss-dump.txt
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/bin/bash
####################################################################################################
#### author: SlickStack ############################################################################
#### link: https://slickstack.io ###################################################################
#### mirror: http://mirrors.slickstack.io/ss-dump.txt ##############################################
#### path: /var/www/ss-dump ########################################################################
#### destination: n/a (not a boilerplate) ##########################################################
#### purpose: Dumps the live MySQL database to /var/www/wp.sql (the SFTP user can access) ##########
#### module version: Ubuntu 20.04 LTS + MySQL 8.0.x ################################################
####################################################################################################
## KEEP IN MIND THAT SS-DUMP MIGHT ONLY FUNCTION PROPERLY ON LOCALHOST DATABASES ##
## include SlickStack configuration ##
source /var/www/ss-config
## include SlickStack functions ##
source /var/www/ss-functions
## mysqldump alias flags ##
function mysqldump {
# /usr/bin/mysqldump
command mysqldump --user=$DB_USER --password=$DB_PASSWORD --host=$DB_HOST --protocol=tcp --port=3306 --no-tablespaces --single-transaction --skip-lock-tables --dump-date --force "$@"
}
####################################################################################################
#### SS-Dump: Export The Live MySQL Database (mysqldump) ###########################################
####################################################################################################
## here we use mysqldump to dump a copy of the live production database to /var/www/meta ##
## to ensure support for remote databases we force the TCP protocol to be used ##
## MESSAGE ##
echo -e "${LIGHTPURPLE}SS-DUMP: Dumping the live MySQL database to /var/www/meta/wp.sql...${NORMAL}" >&2
## dump production MySQL database (overwrites existing) ##
mysqldump --databases $DB_NAME > /var/www/meta/wp.sql
## copy MySQL 8.0.x data (includes databases) ##
cp /var/lib/mysql /var/www/meta/mysql.bak
# cp /var/l ib/mysql-files /var/www/meta/mysql-files.bak
# cp /var/lib/mysql-keyring /var/www/meta/mysql-keyring.bak
####################################################################################################
#### SS-Dump: Reset Permissions (Allows SFTP User To Access The SQL Dump File) #####################
####################################################################################################
## here we do a quick permissions reset to ensure SFTP users can access the dump file ##
## keep in mind that root/sudo users will have access to this file regardless ##
## reset permissions ##
chown -R $SFTP_USER:www-data /var/www/meta/wp.sql
chmod 0775 /var/www/meta/wp.sql
####################################################################################################
#### SS-Dump: SUCCESS (OR FAIL) MESSAGE ############################################################
####################################################################################################
## FUTURE: if = file exists + recent touch time + file contents not zero ##
echo -e "${YELLOW}The MySQL database was successfully dumped to: /var/www/meta/wp.sql${NORMAL}" >&2
####################################################################################################
#### SlickStack: External References Used To Improve This Script (Thanks, Interwebz) ###############
####################################################################################################
## Ref: https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
## Ref: https://unix.stackexchange.com/questions/293966/suppress-warning-messages-from-mysql-in-shell-script-but-allow-errors
## Ref: https://github.com/cytopia/devilbox/issues/212
## Ref: https://stackoverflow.com/questions/32133353/unable-to-connect-to-mysql-database-in-ubuntu
## Ref: https://dba.stackexchange.com/questions/35847/mysqldump-flush-privileges-option
## Ref: https://www.sqlshack.com/how-to-install-mysql-on-ubuntu-18-04/
## Ref: https://stackoverflow.com/questions/2989724/how-to-mysqldump-remote-db-from-local-machine
## Ref: https://dev.mysql.com/doc/refman/8.0/en/transport-protocols.html
## Ref: https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html
## Ref: https://snapshooter.io/learn/mysqldump-ultimate-guide
## Ref: https://www.interserver.net/tips/kb/ultimate-guide-mysqldump-database-backup-program/
## Ref: https://serverfault.com/questions/547438/mysqldump-has-a-quick-option-why-isnt-this-enabled-by-default
## Ref: https://bugs.mysql.com/bug.php?id=100219
## Ref: https://serversforhackers.com/c/mysqldump-with-modern-mysql
## Ref: https://dan.langille.org/2020/07/21/mysqldump-error-access-denied-you-need-at-least-one-of-the-process-privileges-for-this-operation-when-trying-to-dump-tablespaces/
## Ref: https://forums.cpanel.net/threads/cpanel-33473-mysql-dump-process-privilege-error-after-5-7-31-update.675657/
## Ref: https://dba.stackexchange.com/questions/271981/access-denied-you-need-at-least-one-of-the-process-privileges-for-this-ope
## Ref: https://stackoverflow.com/questions/37805316/what-is-a-tablespace-and-why-is-it-used
## SS_EOF