Skip to content

Commit c351210

Browse files
authored
Create mysql-backup.sh
0 parents  commit c351210

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

mysql-backup.sh

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/bin/bash
2+
3+
################################################################
4+
##
5+
## MySQL Database Backup Script
6+
## Written By: Rahul Kumar
7+
## URL: https://tecadmin.net/bash-script-mysql-database-backup/
8+
## Last Update: Jan 05, 2019
9+
##
10+
################################################################
11+
12+
export PATH=/bin:/usr/bin:/usr/local/bin
13+
TODAY=`date +"%d%b%Y"`
14+
15+
################################################################
16+
################## Update below values ########################
17+
18+
DB_BACKUP_PATH='/backup/dbbackup'
19+
MYSQL_HOST='localhost'
20+
MYSQL_PORT='3306'
21+
MYSQL_USER='root'
22+
MYSQL_PASSWORD='mysecret'
23+
DATABASE_NAME='mydb'
24+
BACKUP_RETAIN_DAYS=30 ## Number of days to keep local backup copy
25+
26+
#################################################################
27+
28+
mkdir -p ${DB_BACKUP_PATH}/${TODAY}
29+
echo "Backup started for database - ${DATABASE_NAME}"
30+
31+
32+
mysqldump -h ${MYSQL_HOST} \
33+
-P ${MYSQL_PORT} \
34+
-u ${MYSQL_USER} \
35+
-p${MYSQL_PASSWORD} \
36+
${DATABASE_NAME} | gzip > ${DB_BACKUP_PATH}/${TODAY}/${DATABASE_NAME}-${TODAY}.sql.gz
37+
38+
if [ $? -eq 0 ]; then
39+
echo "Database backup successfully completed"
40+
else
41+
echo "Error found during backup"
42+
fi
43+
44+
45+
##### Remove backups older than {BACKUP_RETAIN_DAYS} days #####
46+
47+
DBDELDATE=`date +"%d%b%Y" --date="${BACKUP_RETAIN_DAYS} days ago"`
48+
49+
if [ ! -z ${DB_BACKUP_PATH} ]; then
50+
cd ${DB_BACKUP_PATH}
51+
if [ ! -z ${DBDELDATE} ] && [ -d ${DBDELDATE} ]; then
52+
rm -rf ${DBDELDATE}
53+
fi
54+
fi
55+
56+
### End of script ####

0 commit comments

Comments
 (0)