-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmysql_backup_dc.sh
More file actions
executable file
·50 lines (44 loc) · 1.51 KB
/
Copy pathmysql_backup_dc.sh
File metadata and controls
executable file
·50 lines (44 loc) · 1.51 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
#! /bin/bash
#
BACKUP_DIR=/home/mobio/backups
HOST=''
PORT=''
USERNAME=''
PASSWORD=''
# keep minimum 3 backup version
num_backup=`ls $BACKUP_DIR | wc -l`
if [[ $num_backup -gt 3 ]]; then
ls $BACKUP_DIR | sort | head -n $(($num_backup-3)) | awk '{system("rm -rf $BACKUP_DIR/" $1)}'
fi
# run dump data
DIR_NAME=mysql_$(date '+%Y%m%d')
mkdir -p $BACKUP_DIR/$DIR_NAME
cd $BACKUP_DIR
DB_EXCLUDE="'mysql','information_schema','sys','performance_schema'"
SQL_GET_DB="select SCHEMA_NAME from information_schema.SCHEMATA where schema_name not in ($DB_EXCLUDE);"
i=0
echo "====================== BEGIN BACKUP ========================="
echo "DIRECTORY: $BACKUP_DIR/$DIR_NAME"
query_databases="export MYSQL_PWD=\"$PASSWORD\" ; mysql -h $HOST --port=$PORT -u $USERNAME -e \"$SQL_GET_DB\" -sN"
databases=$(eval "$query_databases")
for db in $databases; do
i=$((i+1))
echo $i --- $db
done
echo "DATABASES: $i databases"
i=0
echo "BEGIN: $(date)"
for db in $databases; do
i=$((i+1))
echo "----------------------------------------"
echo ">>>>>>>>> $i --- $db --- file: $db.sql"
mysqldump -v --set-gtid-purged=OFF --quick --single-transaction=TRUE --add-drop-database -h $HOST --port=$PORT -u $USERNAME --password="$PASSWORD" --databases $db >$BACKUP_DIR/$DIR_NAME/$db.sql
if [ "$?" -eq 0 ]
then
echo "Backup.... SUCCESS"
else
echo "Mysqldump encountered a problem look in dump$db.err for information"
fi
done
echo "END: $(date)"
echo "========================================================="