首页 » 建站技术 » WordPress » 浏览内容

自动备份网站并同步到 Dropbox


2014-01-11 23:11:27 1,076 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

DropBox,它无疑是很好的选择——基于 Amazon S3 的云存储保证了可靠性,免费的容量已经足够用,也不必担心数据被审查。

一、设置 Dropbox

Dropbox 提供了丰富的 API,使得我们不必使用官方庞大的客户端,而用一些简单轻量的脚本即可直接上传文件。

Dropbox-Uploader 就是这样一个第三方的脚本,并且它已经开源在了 Github。我们将此脚本下载到 VPS 中,即可使用。

$ wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
  • $ chmod +x dropbox_uploader.sh
  • $ ./dropbox_uploader.sh
  • 运行脚本,根据提示设置自己的 Dropbox 应用 API,然后按照步骤设置,就可以使用其命令上传和下载文件了。

    dropbox_app_create

    二、同步备份脚本

    脚本根据自己的 VPS 配置进行一些修改。

    #!/bin/bash
  • # 一些配置
  • DROPBOX_DIR=/$(date +%Y-%m-%d) # Dropbox 目录,根目录 / 是你已经创建的 app 目录
  • MYSQL_USER="root"
  • MYSQL_PASS="password"
  • MYSQL_DB=('wordpress' 'project2')
  • BACK_DATA=/root/backup-data # 备份文件保存在本地的目录
  • DATA=/var/www # 需要备份的网站文件
  • # 定义备份文件名
  • DataBakName=Database_$(date +"%Y-%m-%d").tar.gz
  • WebBakName=Web_$(date +%Y-%m-%d).tar.gz
  • OldData=Database_$(date -d -6day +"%Y-%m-%d").tar.gz
  • OldWeb=Web_$(date -d -6day +"%Y-%m-%d").tar.gz
  • # Dropbox 里 30 天以上的旧数据可以清除
  • Old_DROPBOX_DIR=/$(date -d -30day +%Y-%m-%d)
  • # 清理本地保存了 6 天的备份
  • echo -ne "Delete local data of 6 days old..."
  • rm -rf $BACK_DATA/$OldData $BACK_DATA/$OldWeb
  • echo -e "Done"
  •  
  • cd $BACK_DATA
  • # 导出 MySQL 数据库,并压缩
  • echo -ne "Dump mysql..."
  • for db in ${MYSQL_DB[@]}; do
  •     (/usr/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db}.sql)
  • done
  • tar zcf $BACK_DATA/$DataBakName *.sql
  • rm -rf $BACK_DATA/*.sql
  • echo -e "Done"
  •  
  • # 备份网站文件
  • echo -ne "Backup web files..."
  • cd $DATA
  • tar zcf $BACK_DATA/$WebBakName *
  • echo -e "Done"
  •  
  • cd $BACK_DATA
  • # 开始上传到 Dropbox
  • echo -e "Start uploading..."
  • ./dropbox_uploader.sh upload  $BACK_DATA/$DataBakName $DROPBOX_DIR/$DataBakName
  • ./dropbox_uploader.sh upload  $BACK_DATA/$WebBakName $DROPBOX_DIR/$WebBakName
  •  
  • # 清理 Dropbox 里 30 天前的旧数据
  • ./dropbox_uploader.sh delete $Old_DROPBOX_DIR/
  •  
  • echo -e "Thank you! All done."
  • 然后使用 crontab,让此脚本每几天定时自动运行,网站的所有数据就会安全地备份到 Dropbox 了。

      网站统计 Statistics

      • 创建时间: 2005年1月3日 距今4941 天
      • 日志总数: 2461
      • 评论总数: 630
      • 标签总数: 654
      • 链接总数: 273
      • 最后更新: 2017-7-1 18:16:33
      • 您是本站第 13702629 位访客

      广告区 Guǎng Gào