svn 备份脚本(包含mysql数据库)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

svn 备份脚本(包含mysql数据库)

备份svn 数据,分两个脚本

svn_data.sh 用于备份svn 数据到,远程rsync 服务器

mysql_bak.sh 用于备份mysql 数据库到,远程rsync 服务器

 

cat /root/sh/svn_data.sh

 
  1. #!/bin/bash 
  2. #backup /u01/svndata/ 
  3. #20110909 by dongnan 
  4.  
  5. #variables 
  6. rsync=/usr/bin/rsync 
  7. rsync_add=192.168.57.82 
  8. svn_data_dir=/u01/svndata 
  9. mysql_data_dir=/data/mysql 
  10. l_time=`date +'%Y-%m-%d %H:%M:%S'` 
  11. today_time=`date +'%Y-%m-%d'` 
  12. log_dir=/root/sh/log 
  13.  
  14.  
  15. #add for backup mysql  
  16. /root/sh/mysql_bak.sh || echo "$l_time mysql backup error!" >> /root/sh/log/mysql_bak.err 
  17. sleep 30 
  18.  
  19. #rsync 
  20. for var in $svn_data_dir $mysql_data_dir ;do 
  21. #echo $var && continue 
  22. now_time=`date +"%F_%T"` 
  23. if ! $rsync -avz --delete --password-file=/root/sh/pw "$var" dongnan@${rsync_add}::svn_data/ 2>>$log_dir/svn_err.txt;then 
  24.     echo $now_time >> $log_dir/svn_err.txt 
  25.     echo "#####" >> $log_dir/svn_err.txt 
  26. fi 
  27. done 
 
cat /root/sh/mysql_bak.sh
 
 
  1. #!/bin/bash 
  2. #backup mysql data 
  3. #20111012 by dongnan 
  4.  
  5. #variables 
  6. dump=/usr/bin/mysqldump 
  7. mysql=/usr/local/bin/mysql 
  8. option='-uroot -pdongnan --opt -e -x --master-data=2' 
  9. databases=$(mysql -uroot -ppassword -e 'show databases;' | awk '$1 !~ /Database|information_schema|test/ {print $1}') 
  10. bak_dir=/data/ 
  11. l_time=`date +'%Y-%m-%d %H:%M:%S'` 
  12. now_time=`date +'%Y-%m-%d'` 
  13. expires_time=`date +"%Y%m%d" --date='4 days ago'
  14. log=/root/sh/log/mysql_bak.err 
  15. date_dir=$(date +'%Y%m%d') 
  16.  
  17. #delete old file (4days)  
  18. find "$bak_dir" -name "${expires_time}" -type d | xargs rm -rf 
  19.  
  20. #date dir 
  21. test -e ${bak_dir}${date_dir} || mkdir -p ${bak_dir}${date_dir} 
  22.  
  23. #backup and gzip database.sql 
  24. for database in $databases;do 
  25.    $dump $option $database | gzip > ${bak_dir}${date_dir}/${now_time}-${database}.sql.gz || echo "$l_time $database backup error!!" >> $log 
  26. done 
 
 
结束

更多欢迎到此讨论:

37275208 

#update 20120605

恢复mysql

gzip -dc 2012-06-01-uspace_uchome.sql.gz | mysql -uroot -pdongnan uspace_uchome

恢复binlog中的sql 语句

 

#update 20130210

 
  1. cat mysql_bak.sh 
  2. #!/bin/bash  
  3. #backup mysql data  
  4. #20111012 by dongnan  
  5.             
  6. #variables  
  7. dump=/usr/local/mysql/bin/mysqldump 
  8. mysql=/usr/local/mysql/bin/mysql 
  9. uuencode=/usr/bin/uuencode 
  10. email=dongnan@mail.com 
  11. option='-udongnan -pdongnan --opt -e -x --master-data=2' 
  12. databases=$($mysql -udongnan -pdongnan -e 'show databases;' | awk '$1 !~ /Database|information_schema|test|mysql/ {print $1}')  
  13. bak_dir=/backup/ 
  14. l_time=`date +'%Y-%m-%d %H:%M:%S'`  
  15. now_time=`date +'%Y-%m-%d'`  
  16. expires_time=`date +"%Y%m%d" --date='7 days ago'`  
  17. log=/root/sh/log/mysql_bak.err  
  18. date_dir=$(date +'%Y%m%d')  
  19.             
  20. #test command 
  21. for command in $dump $mysql $uuencode;do 
  22.     if [[ ! -e $command ]];then 
  23.         echo "Not Found $command" 
  24.         exit 1 
  25.     fi 
  26. done 
  27.        
  28. #delete old file (7days)   
  29. find "$bak_dir" -name "${expires_time}" -type d | xargs rm -rf  
  30.             
  31. #date dir  
  32. test -e ${bak_dir}${date_dir} || mkdir -p ${bak_dir}${date_dir}  
  33.             
  34. #backup and gzip database.sql  
  35. for database in $databases;do 
  36.     ! test -e ${bak_dir}${date_dir}/${now_time}-${database}.sql.gz || break 
  37.     $dump $option $database | gzip > ${bak_dir}${date_dir}/${now_time}-${database}.sql.gz || echo "$l_time $database backup error!!" >> $log  
  38.     $uuencode ${bak_dir}${date_dir}/${now_time}-${database}.sql.gz ${now_time}-${database}.sql.gz | mail  -s "${now_time}-${database}.sql.gz" $email 
  39. done 

#

本文转自 dongnan 51CTO博客,原文链接:http://blog.51cto.com/dngood/883480


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
134 68
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
134 3
|
2月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
58 3
|
3月前
|
存储 定位技术 数据库
介绍一下数据库的备份和恢复策略
【10月更文挑战第21】介绍一下数据库的备份和恢复策略
|
3月前
|
SQL 关系型数据库 MySQL
|
2月前
|
数据库
【赵渝强老师】数据库的备份方式
备份数据库是指将数据库中的数据及相关信息保存起来,以便在系统故障时恢复。备份对象不仅限于数据本身,还包括数据库对象、用户权限等。根据备份策略、类型和模式的不同,可分为整体/部分备份、完全/增量备份、一致/非一致备份。文中还附有相关视频讲解。
|
3月前
|
安全 关系型数据库 MySQL
MySQL用户备份
【10月更文挑战第2天】MySQL用户备份
72 3
|
3月前
|
存储 关系型数据库 MySQL
MySQL如何备份?
【10月更文挑战第2天】MySQL如何备份?
205 3
|
2月前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
37 0
|
10天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
38 3