原文网址:https://www.youyong.top/article/11591e6d3938c
刚刚过去的一周是wanncry病毒肆虐的一周,有很多人的电脑都中招了,虽然目前勒索者收到的支付并不是特别巨大,但是给人民留下的恐慌仍要持续一段时间,我们除了打补丁升级之外,最重要的其实应该养成备份的习惯!特别是重要资料和数据 ,对于一线研发的技术人员,数据备份已经是信手拈来,不过很多都是用可视化工具导出或者命令导出,或者脚本单个数据库导出。
原文网址:https://www.youyong.top/article/11591e6d3938c
刚刚过去的一周是wanncry病毒肆虐的一周,有很多人的电脑都中招了,虽然目前勒索者收到的支付并不是特别巨大,但是给人民留下的恐慌仍要持续一段时间,我们除了打补丁升级之外,最重要的其实应该养成备份的习惯!特别是重要资料和数据 ,对于一线研发的技术人员,数据备份已经是信手拈来,不过很多都是用可视化工具导出或者命令导出,或者脚本单个数据库导出。
原文网址:https://www.youyong.top/article/11591e6d3938c
废话不多说,直接上脚本。阿里centos6.8亲测有效
可以完成一个mysql下所有数据库的备份
#!/bin/sh
# 备份数据库
#账号密码不宜公开,建议写在/etc/my.cnf
MYSQL_USER=username
MYSQL_PASS=password
BACKUP_DIR=/opt/backup/mysql
DATA_DIR=/opt/backup/dbdata
# 查询mysql中所有数据库名字
SQL_STRING="SELECT SCHEMA_NAME AS db FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'performance_schema','test');"
DBS=$(echo $SQL_STRING | mysql -u$MYSQL_USER -p$MYSQL_PASS -Bs)
# 当前日期
DATE=$(date -d '+0 days' +%Y%m%d%H%M)
mkdir -p $DATA_DIR/${DATE}
# 打包名称
ZIP_NAME="mysql_"$DATE".gz"
# 删除3个月之前的数据库备份
find $BACKUP_DIR -name "mysql_*.gz" -type f -mtime +90 -exec rm {} \;
echo "${ZIP_NAME} has been backup successful"
/bin/sleep 3
# 循环备份数据库
for DBNAME in $DBS
do
if [ ! -d ${DATA_DIR} ]; then
mkdir -p ${DATA_DIR}
fi
SQL_FILE=$DBNAME-$DATE".sql"
/usr/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS $DBNAME > $DATA_DIR/$DATE/$SQL_FILE
echo "${DBNAME} has been backup successful"
/bin/sleep 5
done
# tar打包所有sql文件
tar -czvPf $BACKUP_DIR/DATE/$ZIP_NAME $DATA_DIR/$DATE
# 打包成功后重命名sql
for TMP in `find $DATA_DIR/$DATE -name "*.sql"`
do
mv $TMP ${TMP%.*}.backup;
done
报错为mysql_backup.sh
结合crontab 就可以实现完美定时整个mysql下轮询备份
作者声明:本篇文章系本人原创,欢迎分享,但未经许可,谢绝转载。
共 0 条留言