-
Notifications
You must be signed in to change notification settings - Fork 0
/
backup_db.sh
executable file
·46 lines (35 loc) · 1.42 KB
/
backup_db.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
#!/bin/sh
#################################################################
# Define your variables here:
#################################################################
FILESTOKEEP=$3
BMYSQL_USER=
BMYSQL_PWD=
DATE=$(date +"%m-%d-%Y")_$(date +"%T")
BMYSQL_HOST=
BMYSQL_DBNAME=$2
BMYSQL_DBFILENAME=MYSQL_BACKUP_$DATE
BACKUP_DIR=$1
#################################################################
# Make sure output directory exists.
#################################################################
if [ ! -d $BACKUP_DIR ]; then
mkdir -p $BACKUP_DIR
fi
#################################################################
# Create backup
#################################################################
mysqldump --host=$BMYSQL_HOST --user=$BMYSQL_USER --password=$BMYSQL_PWD $BMYSQL_DBNAME | gzip > $BACKUP_DIR/$BMYSQL_DBFILENAME.gz
echo $BMYSQL_DBFILENAME.gz
#################################################################
# Remove old backups
# - this will list files according to date (DESC)
# - skip the first few files (FILESTOKEEP)
# - remove all files past that
# NOTE: Make sure not to save the backups into any directory
# where there are other files other than these backup ones.
#
# Uncomment when you are confident in rest of setup
#################################################################
cd $BACKUP_DIR
ls -t1 | tail -n +$(($FILESTOKEEP+1)) | xargs rm