-
Notifications
You must be signed in to change notification settings - Fork 0
/
exportdb.sh
114 lines (66 loc) · 2.52 KB
/
exportdb.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
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/bin/bash
#
#
#
#
# MySQL database shell script to get database working directory
#
#
#
#
# Set these variables
myUSER="" # Your Database User Name
myPASS="" # Your Database Password
myHOST="" # Your Database Host Name
dbNAME="" # Your Database Table Name
dbDIRNAME="backups" # Database Bacup Directory Name
dbNUMBER="1" # Databe backups number as you wish to store.
# Get date in dd-mm-yyyy format
now="$(date +"%d-%m-%Y_%s")"
#Backup Path
dbPATH=${PWD}"/"${dbDIRNAME}
# Backup Database Output Name
dest=${dbNAME}_${now}".db"
# Bin paths
mysqlDUMB="$(which mysqldump)"
gzip="$(which gzip)"
# Ask question to process last time
echo " "
echo -n "Are you sure to process Mr/Ms.${USERNAME^} (y/n)? "
read answer
if [ "$answer" != "${answer#[Yy]}" ] ;then
# Check if directory exits
if [ -d "$dbPATH" ]; then
echo "${dbDIRNAME^^} directory has already been created. No need to create again !"
else
# If not create directory
mkdir $dbPATH
echo "${dbDIRNAME^^} directory has been created !"
fi
# Get selected table from database
$mysqlDUMB -u $myUSER --password=$myPASS $dbNAME > $dest
# Create zip files and delete and move .db files to sub folder
tar -cf $dest.tar $dest
$gzip -9 $dest.tar
rm -rf $dest
mv "$dest.tar.gz" $dbPATH
cd $dbPATH
# Count backups and store newest backups according given number above and delete oldest ones.
countFILE="$(ls -A | wc -l)"
if [ "$countFILE" -gt "$dbNUMBER" ]; then
ls -t | sed -e "1,${dbNUMBER}d" | xargs -d '\n' gio trash
fi
countFILE="$(ls -A | wc -l)"
echo " "
echo "================================================================================================"
echo "Backup is completed! Backup name is $dest.tar.gz. Thank You !"
echo "================================================================================================"
echo "Total backups numbers is $countFILE"
echo "============================"
else
echo " "
echo "=================================================="
echo "Operation aborted.Be sure to back up. Thank you !"
echo "=================================================="
echo " "
fi