Linux script to backup MySQL to Amazon S3

摘要: A shell script to backup MYSQL database and upload it to Amazon S3.

A shell script to backup MYSQL database and upload it to Amazon S3.

Note
Make sure the AWS CLI is installed properly

1. mysqldump + gzip + aws

Dump the database with mysqldump and gzip it into a folder, later uses the aws command to upload the file to Amazon S3

backup-script.sh
#!/bin/bash
################################################################
##
##   MySQL Database To Amazon S3
##   Written By: YONG MOOK KIM
################################################################
NOW=$(date +"%Y-%m-%d")
BACKUP_DIR="/home/mkyong/backup"
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USER="YOUR_DB_USER"
MYSQL_PASSWORD="YOUR_DB_PASSWORD"
DATABASE_NAME="YOUR_DB_NAME"
AMAZON_S3_BUCKET="s3://mkyong/backup/mysql/"
AMAZON_S3_BIN="/home/mkyong/.local/bin/aws"
FOLDERS_TO_BACKUP=("/home/mkyong/bk1" "/home/mkyong/bk2")
#################################################################
mkdir -p ${BACKUP_DIR}
backup_mysql(){
         mysqldump -h ${MYSQL_HOST} \
           -P ${MYSQL_PORT} \
           -u ${MYSQL_USER} \
           -p${MYSQL_PASSWORD} ${DATABASE_NAME} | gzip > ${BACKUP_DIR}/${DATABASE_NAME}-${NOW}.sql.gz
# backup any folders?
backup_files(){
        tar -cvzf ${BACKUP_DIR}/backup-files-${NOW}.tar.gz ${FOLDERS_TO_BACKUP[@]}
upload_s3(){
        ${AMAZON_S3_BIN} s3 cp ${BACKUP_DIR}/${DATABASE_NAME}-${NOW}.sql.gz ${AMAZON_S3_BUCKET}
backup_mysql
upload_s3

2. How to run?

Assign execute permission to the shell script, and run it directly.

Terminal
$ chmod +x backup-script.sh
# run it
$ ./backup-script.sh

3. Run it daily

3.1 cron schedule to run the script daily.

Terminal
$ crontab -e
# Daily, 7pm
0 19 * * * /path.to/backup-script.sh > /dev/null 2>&1

上一篇: Java 8 How to sort list with stream.sorted()
下一篇: Spring REST Integration Test Example
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号