Sim-U我的世界模拟城市模组官网 Sim-U我的世界模拟城市模组官网
首页
随笔
    • 视频教程 (opens new window)
    • 使用教程
    • 常见问题
下载中心
赞助
    • 官方频道 (opens new window)
首页
随笔
    • 视频教程 (opens new window)
    • 使用教程
    • 常见问题
下载中心
赞助
    • 官方频道 (opens new window)
npm
  • s3 备份记录

    • 安装aws cli
      • windows下安装
      • 首先检查现有python版本
      • 安装python pip 安装aws cli
      • 下载及安装 MSI installer
      • linux下安装
      • 检查安装python
      • 从pip安装awscli
      • 配置awscli
      • shell 脚本备份mysql并上传到s3
      • 下载安装 cron
    • 这样就完成了定时备份mysql到s3
      • 扩展
      • 随笔
      trhsy
      2019年8月20日09:32:27
      目录

      s3 备份记录

      # 关于aws s3 数据库备份记录

      最近需要使用mysql备份数据库,防止突发情况。 传统的备份一般都是直接备份到本机,或者其他地方,但是都是有点欠妥。比如那天服务器挂掉了,起不来了,传统数据库备份没有卵用。找了很多个备份服务器的,阿里云,腾讯云,亚马逊。为啥选择亚马逊,一是工作需要,而是真的很安全,阿里腾讯外围端口是全部开放的,亚马逊则是你开那个才有默认是全部关闭的。

      # 安装aws cli

      # windows下安装

      本机使用的是win7

      # 首先检查现有python版本

      快捷键win+R,输入cmd确定;打开cmd命令行输入python -V aws-pythin-v.png 若小于2.7.9,请自行更新pythonb版本,cli官网上瞄到一眼说最低支持版本2.7.9,没研究之前版本会有什么问题,但是为了方便还是按要求来吧。

      # 安装python pip 安装aws cli

      下载python (opens new window),你可以下载最新的,但是等下安装pip的时候一定要根据安装的版本来。 安装完了之后需要配置环境变量,就是把你安装python的路径配置到path;具体操作,我的电脑-右键-属性-高级系统设置-环境变量-系统变量,找到path,编辑在最后填上D:\Python27;D:\Python27\Scripts这是我的,你可以替换成你的安装路径。 接着再次打开cmd输入path查看是否配置成功,再次检查python版本python -V aws-python.png python安装完毕后需要安装pip,下载地址:https://pypi.python.org/pypi/pip#downloads (opens new window) 下载完成之后,解压到一个文件夹,用CMD控制台进入解压目录,输入 python setup.py install 正确安装完成之后需要加入path成为内部命令,将python目录下的scripts文件夹放入path中;就是上文中提到的环境配置。 输入pip测试是否正常 aws-pip 接着使用pip 安装awscli 输入pip install awscli 等待安装完毕;输入aws --version aws-v

      # 下载及安装 MSI installer

      https://s3.amazonaws.com/aws-cli/AWSCLI64.msi (opens new window) 下载后直接运行,一路下一步(如果想更改安装位置的话,可以手动修改) 安装完成cmd输入aws --version aws-v

      # linux下安装

      本机使用 linux ubuntu

      # 检查安装python

      查看当前版本,我这个是更新过的,原来的版本2.7.4有点低,达不到要求害老夫一顿好整,哎

      root@fyb:~t# python -V
      Python 3.4.3
      

      还原一下原本的更新过程:

      # 查看现有python版本
      python -V
      # 若小于2.7.9,卸载当前版本
      apt-get remove --auto-remove python
      #更新源
      sudo apt-get update
      # 指定当前安装版本
      sudo add-apt-repository ppa:jonathonf/python-3.6
      # 安装python
      sudo apt-get install python3.6
      # 安装pip
      sudo apt-get install python3-pip
      # 更新pip
      sudo pip install --upgrade pip
      

      中间可能会出现一点问题,具体什么问题遇到找度娘,老夫这里不能重现了,已经折腾了一次了不想再被搞一次。

      # 从pip安装awscli

      输入pip install awscli,等待安装完成查看版本aws --version

      # 配置awscli

      通过aws configure命令来进行配置 至少提供访问密钥ID和秘密访问密钥,这将使用你的帐户创建一个带有~/.aws的文件夹(windows下应该在C:\Users\Administrator\.aws)

       aws configure
       Access key ID:your_key_ID
       Secret access key:your_access_key
       Default region name:your_region_name
       Default output format:可忽略(默认json)
      

      aws cli常用命令

       # 创建桶
       aws s3 mb s3://your_aws_name
       # 查看桶
       aws s3 ls
       # 查看桶信息
       aws s3 ls s3://your_aws_name
       # 删除桶
       aws s3 rb s3://your_aws_name
       # 本地上传s3服务器
       aws s3 cp file.xml s3://your_aws_name
       # s3服务器下载本地
       aws s3 cp s3://your_aws_name ./
      
      

      # shell 脚本备份mysql并上传到s3

      #!/bin/bash
      # this mysql backups
      
      export DB_USER="you-db-user"
      export DB_PASSWORD="you-db-password"
      export DB_HOST="you-host"
      export date_format=`date +%a`
      export db_dir="/usr/local/fyb_test/$date_format"
      export dest_backup_file="/usr/local/fyb_test/$date_format/mysql-databases-$date_format.tgz"
      export s3_bucket="s3://your——name/"
      rm -rf $db_dir
      mkdir -p $db_dir 2>/dev/null
      # If db_dir does not exist, create it:
      if [ ! -d $db_dir ]; then
      mkdir -p $db_dir
      fi
      # 将数据库转储到文件中
      # Get all MySQL databases
      mysqldump -u $DB_USER -h $DB_HOST -p$DB_PASSWORD --no-create-db --databases wifidb > $db_dir/wifidb-$date_format.sql
      tar -zcvf $dest_backup_file -C $db_dir .
      #压缩文件传到s3
      aws s3 cp $dest_backup_file ${s3_bucket}
      aws s3 ls ${s3_bucket}
      
      

      新建一个文件修改名字为mysql_backups.sh,上传到linux服务器,设置定时任务每天备份或者其他时间

      # 下载安装 cron

      linux下执行命令sudo apt-get install cron corn 使用简要说明

       # 启动状态
       service cron status
       # 启动
       service cron start
       # 关闭
       service cron stop
       
       # 查看当前任务计划
       crontab –l
       # 编辑
       crontab -e
       # 移除
       crontab –r
       -u user:用来设定某个用户的crontab服务;
       file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。
       如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
       -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
       -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
       -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
       -i:在删除用户的crontab文件时给确认提示。
      

      切换到安装路径cd /var/spool/cron 设置定时任务crontab -e

      HELL=/bin/sh
      PATH=/sbin:/bin:/usr/sbin:/usr/bin
      MAILTO=you-email@163.com
      
      0 0 * * * /you-path/mysql_backups.sh
      
      # Example of job definition:
      # .---------------- minute (0 - 59)
      # | .------------- hour (0 - 23)
      # | | .---------- day of month (1 - 31)
      # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
      # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
      # | | | | |
      # * * * * * user-name command to be executed
      

      # 这样就完成了定时备份mysql到s3

      # 扩展

      从s3 上下载下来并还原到数据库

      #!/bin/bash
      # this mysql download
      
      export DB_USER="you-user"
      export DB_PASSWORD="you-password"
      export DB="you-db"
      export date_format=`date +%a`
      export db_dir="/usr/local/fyb_test/download/$date_format"
      export s3_bucket="s3://you-name/mysql-databases-$date_format.tgz"
      # rm -rf $db_dir
      mkdir -p $db_dir 2>/dev/null
      # If db_dir does not exist, create it:
      if [ ! -d $db_dir ]; then
      mkdir -p $db_dir
      fi
      #查看 s3目录
      aws s3 ls ${s3_bucket}
      # aws s3 cp ${s3_bucket} $db_dir
      cd $db_dir
      ls
      tar -zxvf $db_dir/mysql-databases-$date_format.tgz .
      ls
      cd /usr/sbin
      mysql -u $DB_USER -p$DB_PASSWORD --default-character-set=utf8 $DB <$db_dir/wifidb-$date_format.sql
      
      

      新建文件命名为s3-mysql-download.sh,需要还原的时候直接执行文件即可。

      如果本文对您有所帮助,请打赏给我吧,我先送个你也红包往下看,你可以把扫到红包打赏个我哦! 红包

      上次更新: 2022/12/05, 09:12:57
      Theme by Vdoing | Copyright © 2022-2025 Sim-U | By Trhsy
      • 跟随系统
      • 浅色模式
      • 深色模式
      • 阅读模式