新建了一个交流群,感兴趣的童鞋可以进来聊聊天,分享一下最新的技术和优惠资讯 群号:557828418,暗号VPS

脚本自动备份VPS数据到Dropbox

教程存档 kasimay 496℃ 0评论

dropbox
之前做站数据丢了不少,现在博主用的搬瓦工,只剩下最后一次激活机会了(前几次被黑,对外发包,被hold了),所以数据要先好好保存,如是收集了下网路上可以用的一些教程,此次文章仅仅作为资料保存。

如果你的vps只有一个wordpress,那你资源足够的情况下可以使用BackWPup这个Wordpress的插件,但是如果不仅只有wordpress这一个站的话,还是需要对VPS网站数据进行备份,利用VPS用户的Root权限,使用脚本来实现自动备份VPS数据到Dropbox。

一、注册一个账号,并登录创建APP

目前Dropbox在国内已经被封了,需要访问的只能扶墙了,目前一开始注册有250MB的存储空间,可以做任务实现扩容。

1、通过这个地址注册:http://db.tt/h2uDxr7V

2、访问 https://www.dropbox.com/developers/apps 点击Create an app创建一个APP,填写好相关信息之后,在APP权         限设置的时候选择Full Dropbox确认

二、下载Dropbox vps同步脚本,并赋予APP绑定权限

1、登陆你的VPS 在root 目录下                     输入命令: wget https://github.com/andreafabrizi/Dropbox-Uploader

2、赋予Dropbox-Uploader.sh执行权限   输入命令: chmod +x dropbox_uploader.sh

3、然后绑定APP                                                输入命令:  ./dropbox_uploader.sh info

4、这个时候提示你要输入App key和App secret,访问这个时候提示里面出现的超文本链接,点击进去之后,点击Allow绑定            App,并按照提示进行操作,在APP权限的时候选择Full Dropbox。

5、在SSH 界面输入命令: ./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old 提示Done就是绑定成功了。

三、添加自动备份脚本

1、执行:vi backup.sh   按 i 进入编辑模式适当修改以下绿色内容后,复制粘贴进去

#!/bin/bash
DROPBOX_DIR="/backup/$(date +%Y-%m-%d)" #Dropbox上的备份目录
MYSQL_USER="root" #数据库帐号
MYSQL_PASS="123456" #数据库密码
YM_DATA=/etc/nginx #nginx配置目录
BACK_DATA=/home/backup #本地备份文件存放目录,手动创建
DATA=/home/www #网站数据存放目录

#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +"%Y%m%d").tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
YMName=YM_$(date +%Y%m%d).tar.gz
OldData=Data_$(date -d -6day +"%Y%m%d").tar.gz
OldWeb=Web_$(date -d -6day +"%Y%m%d").tar.gz
OldYM=YM_$(date -d -6day +"%Y%m%d").tar.gz

#定义Dropbox旧数据的名字(30天前)
Old_DROPBOX_DIR=/backup/$(date -d -30day +%Y-%m-%d) #Dropbox上的备份目录

#删除本地6天前的数据
rm -rf $BACK_DATA/$OldData $BACK_DATA/$OldWeb $BACK_DATA/$OldYM

cd $BACK_DATA

#使用命令导出SQL数据库,并且按数据库分个压缩
for db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
    (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done
#压缩数据库文件合并为一个压缩文件
tar zcf $BACK_DATA/$DataBakName $BACK_DATA/*.sql.gz
rm -rf $BACK_DATA/*.sql.gz

#压缩网站数据
cd $DATA
tar zcf $BACK_DATA/$WebBakName ./*

#压缩域名配置数据
cd $YM_DATA
tar zcf $BACK_DATA/$YMName ./*

cd ~
#开始上传
./dropbox_uploader.sh upload $BACK_DATA/$DataBakName $DROPBOX_DIR/$DataBakName
./dropbox_uploader.sh upload $BACK_DATA/$WebBakName $DROPBOX_DIR/$WebBakName
./dropbox_uploader.sh upload $BACK_DATA/$YMName $DROPBOX_DIR/$YMName

#开始删除远程30天前的文件
./dropbox_uploader.sh delete $Old_DROPBOX_DIR/

echo -e "Thank you! all down"

按ESC键退出编辑模式,
输入:wq
然后按Enter保存并退出。

四、赋予脚本权限

输入命令:chmod +x backup.sh

五、设置定时任务

执行命令:crontab -e

按上下键调整在最后 添加命令   00 03 * * * /root/backup.sh 表示每天凌晨三点执行备份脚本,这个时间你可自行修改

如果你的VPS是nano编辑器(最上有nano字样),加入之后按Ctrl+OF3并按Enter保存,然后按Ctrl+XF2退出;
另一种是vi编辑器,需要先按i键进入编辑模式,在末尾输入上面的命令之后,按ESC键,输入:wq ,再按Enter保存并退出即可。

最后重启Crontab

service cron restart

 

转载请注明:凯泽de博客 » 脚本自动备份VPS数据到Dropbox

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址