Ryan

全自动定时备份VPS数据到Dropbox
暑假的时候太忙了,32MB.CN的VPS给忘续费了,数据全丢了,唉,之前一直说弄个cron job定时备份到dro...
扫描右侧二维码阅读全文
14
2015/11

全自动定时备份VPS数据到Dropbox

暑假的时候太忙了,32MB.CN的VPS给忘续费了,数据全丢了,唉,之前一直说弄个cron job定时备份到dropbox的,知道前一段时间才弄上。
关键是数据无价啊,(当然,32MB.CN上的数据几乎没有价值),常备份是个好习惯,我选择备份到Dropbox是因为Dropbox是个同步盘,我的台式机和笔记本都装有Dropbox,只要开机联网就会自动链接Dropbox同步数据,这样网站数据就不容易丢失了。

备份成功

成功备份32MB.CN到Dropbox

相关脚本

nano backup.sh

放到哪里无所谓,记得赋予执行权限就可以了chmod +x backup.sh

#!/bin/bash
# Settings
DROPBOX_DIR="/Backups" #Dropbox中的文件夹名称
BACKUP_SRC="/home/wwwroot/website /home/wwwroot/database" #需要备份的文件夹路径,可以同时指定多个,32MB.CN用了Sqlite数据库,Sqlite以文件形式存放,故也要备份
BACKUP_DST="/miniVPS" #用来存放备份的文件夹路径
MYSQL_SERVER="127.0.0.1" #连接本地MySQL
MYSQL_USER="root" #本地MySQL的用户
MYSQL_PASS="123456" #本地MySQL的密码

# Stop editing here
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tgz"
LAST=$(date -d "2 months ago" +"%Y.%m.%d") #这里的时间可以根据需要进行修改,如"3 months ago"

# Backup files
ps -e | grep -c mysql
if [ $? -eq 0 ]; then
  echo "Dumping databases..."
  /web/mysql/bin/mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$BACKUP_DST/$NOW-Databases.sql" #这里的命令路径可以根据需要进行修改
else
  echo "ERROR. Now exiting..."
  exit 1
fi

if [ $? -eq 0 ]; then
  echo "Packing files..."
  tar -czf "$DESTFILE" $BACKUP_SRC "$BACKUP_DST/$NOW-Databases.sql"
else
  echo "ERROR. Now exiting..."
  exit 1
fi

if [ $? -eq 0 ]; then
  /home/backup/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tgz" #这里的脚本路径可以根据需要进行修改
else
  echo "ERROR. Now exiting..."
  exit 1
fi

# Delete old files
if [ $? -eq 0 ]; then
  /home/backup/dropbox_uploader.sh delete "$DROPBOX_DIR/$LAST.tgz" #这里的脚本路径可以根据需要进行修改
else
  echo "ERROR. Now exiting..."
  exit 1
fi

if [ $? -eq 0 ]; then
  echo "Cleaning the backups..."
  rm -f "$BACKUP_DST/$NOW-Databases.sql"
  rm -f "$BACKUP_DST/$LAST.tgz"
else
  echo "ERROR. Now exiting..."
  exit 1
fi

其中的dropbox_uploader.sh是Dropbox上传下载脚本,主页:http://www.andreafabrizi.it/?dropbox_uploader

apt-get install git
git clone http://github.com/andreafabrizi/Dropbox-Uploader.git
cd Dropbox-Uploader
chmod +x dropbox_uploader.sh
mv dropbox_uploader.sh /home/backup/

初始化脚本,并按照脚本中的提示到对应的Dropbox的网页中创建API,在脚本的交互界面中输入生成的Key

./dropbox_uploader.sh

申请Dropbox访问API 允许API访问你的Dropbox 初始化完成以后,便可以立即执行一次backup.sh脚本进行备份了

/home/backup/backup.sh

定时任务

光弄好了脚本可不行,没添加定时任务怎么定时备份。

crontab -e

设置为每天执行一次备份,具体时间可以根据需要进行修改

30 1 * * * sh /home/backup/bbackup.sh
搬瓦工年付$187机房套餐补货了,电信联通优化,512M内存/500G流量/1G带宽,建站稳定,优惠码:BWH1ZBPVK,【点击购买】!
搬瓦工年付$28CN2高速线路,512M内存/500G流量/1G带宽,电信联通优化,延迟低,速度快,建站稳定,优惠码同上,【点击购买】!
Last modification:August 19th, 2017 at 07:01 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment

25 comments

  1. 日后

    最高能备份多大的文件啊?我备份了一个4g的文件备份失败

  2. SNGR

    我发现评论的那些域名都很牛

    1. Ryan
      @SNGR

      还行吧

  3. FF

    有一个地方打错了。。
    chomd +x backup.sh
    应该是chmod +x backup.sh

    1. Ryan
      @FF

      感谢提醒

  4. 李阳博客

    哈哈,国外服务器看来用起来还不错呀。

  5. 香菇肥牛

    国内是不是连不上dropbox... :arrow:

    1. Ryan
      @香菇肥牛

      必须的

  6. 32mb.cn

    SSL评论测试

    1. Ryan
      @32mb.cn

      评论测试2

  7. 爆实惠

    这个方法值得学习研究下 8)

  8. 爆实惠

    百度云的飘过……几乎无限大 :idea:

  9. 蛋疼实验室

    再来看看你,逗妇乳
    蛋疼实验室路过

  10. 斗付干

    博主1W块域名出手吗?过了这村就没那店了。 :arrow:

    1. Ryan
      @斗付干

      我晕,这域名有这么值钱么

      1. LEEJON
        @Ryan

        "运维笔记"的lnmp自带备份功能,然后再安装个byby按小时备份妥妥,可自定义备份文件失效

      2. LEEJON
        @Ryan

        请谨慎。

  11. 免费资源部落

    Dropbox容量太小了。

    1. Ryan
      @免费资源部落

      我的有18.2G,还行,容量方面确实不如国内的各种T啊

      1. 免费资源部落
        @Ryan

        国内的都不可靠

  12. 逗妇干

    博主是否打算出售域名 :roll:

    1. Ryan
  13. 路易大叔

    前几天刚干了件删除据库的蠢事

    1. Ryan
      @路易大叔

      这个我也干过 :arrow:

  14. 神父

    右键 另存,谢谢了啊