-
Notifications
You must be signed in to change notification settings - Fork 6
/
mysql-all_dbs-bkp-git.sh
executable file
·40 lines (40 loc) · 1.28 KB
/
mysql-all_dbs-bkp-git.sh
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
#!/bin/bash
NOW=$(date +"%Y-%m-%d_%H-%M-%S_%z")
Y=$(date +"%Y")
M=$(date +"%m")
D=$(date +"%d")
BASENAME=$1
DB_HOST=$2
DB_USER=$3
DB_PASS=$4
GIT_DIR=$5
echo "******************************************************************************"
echo "BEGIN: $NOW"
echo "------------------------------------------------------------------------------"
echo "CREATING FILE..."
mysqldump -h $DB_HOST --user=$DB_USER --password="${DB_PASS}" --all-databases --extended-insert=FALSE > mysqldump.sql
head -n -1 mysqldump.sql > mysqldump-no_last_line.sql
mv mysqldump-no_last_line.sql mysqldump.sql
diff mysqldump.sql last_mysqldump.sql > diff.txt
if [ -s diff.txt ] || [ ! -e last_mysqldump.sql ]
then
echo "NEW FILE DIFFERENT FROM THE LAST ONE."
rm diff.txt
cp mysqldump.sql "$GIT_DIR/$BASENAME.sql"
mv mysqldump.sql last_mysqldump.sql
echo "ENTERING GIT DIR..."
cd $GIT_DIR
git add .
git commit -m "$NOW"
echo "COMMIT DONE."
git push origin master
else
echo "NO CHANGES."
rm diff.txt
mv mysqldump.sql last_mysqldump.sql
fi
echo "------------------------------------------------------------------------------"
END=$(date +"%Y-%m-%d_%H-%M-%S_%z")
echo "BEGIN: $NOW"
echo " END: $END"
echo "******************************************************************************"