Linux脚本将MySQL备份到Amazon S3

mysql备份脚本

一个用于备份MYSQL数据库并将其上传到Amazon S3的Shell脚本。

注意
确保正确安装AWS CLI

1. mysqldump + gzip + aws

使用mysqldump转储数据库并将其gzip压缩到一个文件夹中,稍后使用aws命令将文件上传到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.如何运行?

将执行权限分配给shell脚本,然后直接运行它。

Terminal
$ chmod +x backup-script.sh

# run it
$ ./backup-script.sh

3.每天运行

3.1 cron计划每天运行脚本。

Terminal
$ crontab -e


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

参考文献

翻译自: https://mkyong.com/linux/linux-script-to-backup-mysql-to-amazon-s3/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值