-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsingle_mysqldump_to_aws_s3.sh
51 lines (36 loc) · 1.2 KB
/
single_mysqldump_to_aws_s3.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
#/bin/bash
mysqldump=/usr/bin/mysqldump
aws=/usr/local/bin/aws
#Timestamp
TIME=`/bin/date +%d-%m-%Y-%T`
DB_USER='YOUR_DB_USERNAME' #example dbusermm
DB_PASS='YOUR_DB_PASS' #example 123password
DB_NAME='YOUR_DB_NAME' #example bitnami_example
S3_BUCKET_NAME="example-backup"
S3_BUCKET_PATH="s3://example-backup" #example s3://example-backup
#Backup Filename
FILENAME=${DB_NAME}_${TIME}
#Backup location
BACKUP_DIR="/tmp/mysqldump" #example /tmp/dbdump
BACKUP_PATH="$BACKUP_DIR/$FILENAME.sql.gz"
mkdir -p $BACKUP_DIR
#Create Credential File
DB_ACCESS=./tmp/mysqldump/mysql-credentials.cnf
cat <<EOF > $DB_ACCESS
[client]
user=$DB_USER
password=$DB_PASS
EOF
echo $BACKUP_DEST
echo "Database dump $DB_NAME..."
#mysqldump -u [user name] –p [password] [options] [database_name] [tablename] > [dumpfilename.sql]
#login database via credential file for more secure access
$MYSQLDUMP --defaults-extra-file=$DB_ACCESS $DB_NAME | gzip > $BACKUP_PATH
echo "Checking AWS S3 connection..."
aws s3 ls $S3_BUCKET_NAME
echo "Uploading mysqldump to AWS S3"
aws s3 cp $BACKUP_PATH $S3_BUCKET_PATH
#Cleaning temporary file
echo "Cleaning temporary file"
sudo rm $BACKUP_DIR/*
echo "Backup available at $S3_BUCKET_PATH$FILENAME.sql.gz"