Repository navigation
Expand file tree
/
Copy pathmysqlBackup
More file actions
71 lines (60 loc) · 1.89 KB
/
Copy pathmysqlBackup
File metadata and controls
71 lines (60 loc) · 1.89 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
#!/bin/bash
while getopts 'd:h:u:p:' flag; do
case "${flag}" in
d) DBBACKUPDIR="${OPTARG}" ;;
h) DBHOST="${OPTARG}" ;;
u) DBUSER="${OPTARG}" ;;
p) DBPASSWORD="${OPTARG}" ;;
esac
done
DBBACKUPDATE=`date +%Y%m%d-%H%M%S`;
if [ -z $DBBACKUPDIR ] || [ -z $DBHOST ] || [ -z $DBUSER ] || [ -z $DBPASSWORD ] ; then
echo "mysqlBackup [OPTIONS...]"
echo "";
echo "Backup a remote mysql server."
echo "";
echo "Flags:";
echo " -d Directory you want your backups to be saved in"
echo " -h IP Address or hostname to your pfsense"
echo " -u username to your mysql"
echo " -p password to your mysql"
echo "";
echo "Example:";
echo "mysqlBackup -d /var/backup/mysql/ -h 192.168.0.2 -u root -p mypassword"
exit 1;
fi;
if [ ! -d "$DBBACKUPDIR" ] && [ ! -w "$DBBACKUPDIR" ] ; then
echo "$DBBACKUPDIR does not exist or is not writable by this user $USER" ;
exit 2;
fi;
if ! hash mysqldump 2>/dev/null; then
echo "mysqldump is required, please install, for centos 7 run 'yum install mysql -y'"
exit 3;
fi
if ! hash bzip2 2>/dev/null; then
echo "bzip2 is required, please install, for centos 7 run 'yum install bzip2 -y'"
exit 3;
fi
# Getting Backup
cd $DBBACKUPDIR;
umask 0027;
for db in $(echo "show databases;" | mysql --host=${DBHOST} --user=${DBUSER} --password=${DBPASSWORD} -N);
do
if [ ! -d $db ] ; then
mkdir $db;
fi;
if cd $db; then
mysqldump --compress --single-transaction --routines --host=${DBHOST} --user=${DBUSER} --password=${DBPASSWORD} ${db} | bzip2 -9 >${db}_${DBBACKUPDATE}.sql.bz2
if [ $? -eq 0 ] && [ -f ${db}_${DBBACKUPDATE}.sql.bz2 ]; then
echo "Backup of Database ${db} Ok";
else
(>&2 echo "Backup of Database ${db} Failed");
fi
md5sum ${db}_${DBBACKUPDATE}.sql.bz2 >> ${db}_checksums.md5
cd ..
else
(>&2 echo "Backup directory Database ${db} could not be created");
exit 4;
fi;
done
exit 0;