justfan 发表于 2014-6-8 20:32:29

VPS文件和数据库备份到Dropbox 完整命令

本帖最后由 justfan 于 2014-6-8 20:41 编辑

看到有人问自动备份,恰好我前两天也在找这个代码,功夫不负有心人,我在github找到了相关代码,并操作成功。我把这个过程分享出来。
首先需要注册dropbox,然后建立开发者账户下添加app后获取key 和授权码,然后在vps上执行以下命令apt-get install curl p7zip-full
cd /root
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
chmod +x dropbox_uploader.sh
./dropbox_uploader.sh
执行过程中需要输入dropbox 获取的key和授权码。完成验证成功后执行
curl "https://raw.githubusercontent.com/funcman/vps_backup_shell/master/backup.sh"
chmod +x backup.sh
nano work.sh
编辑器添加:
#!/bin/bash

BASEPATH=$(cd `dirname $0`; pwd)

DBPATH=/tmp/database`date +%Y%m%d`

mkdir -p $DBPATH
mysqldump -u用户名 -p密码 -hlocalhost 数据库名称 > $DBPATH/website_database.sql

$BASEPATH/backup.sh -D"$DBPATH" -fsite_db -d7
$BASEPATH/backup.sh -D/var/www -fsite_www -d7

rm -rf $DBPATH
ctrl+o 保存, ctrl+x退出编辑
chmod +x work.sh
接下来添加每日自动备份
nano /etc/crontab
尾行添加
00 15 * * * root /root/work.sh

以上为自动备份完整命令行。
之前建的站点做niche由于没有备份,vps出了问题全部没了,血泪教训。现在又重新开始做了。
另外,有用的话请给我点鼓励!






uper 发表于 2014-6-9 08:35:57

是不是每个网站都需要单独备份,如果一个VPS上有三个网站,需要做三遍这个这程?
今天的分用完了,明天加分
谢谢!

woi911 发表于 2014-6-9 09:07:39

uper 发表于 2014-6-9 08:35 static/image/common/back.gif
是不是每个网站都需要单独备份,如果一个VPS上有三个网站,需要做三遍这个这程?
今天的分用完了,明天加分 ...

mysqldump -u用户名 -p密码 -hlocalhost 数据库名称 > $DBPATH/website_database.sql

可以添加多个数据库。或修改为全部数据库。
具体语法可以参考mysqldump


justfan 发表于 2014-6-9 09:17:02

简要说明下,如果你的网站目录为
/var/www/www.mysite1.com
/var/www/www.mysite2.com
这种格式
以上代码会备份你vps上所有的网站文件

关于数据库
mysqldump -u用户名 -p密码 -hlocalhost 数据库名称 > $DBPATH/website_database.sql

更改为
mysqldump -u用户名 -p密码 -hlocalhost > $DBPATH/website_database.sql
即备份你vps上所有站点的数据库文件

安装完成后就不需要在再装wordpress备份插件了。


betty 发表于 2014-6-9 09:39:39

学习了,谢谢楼主分享。

etoole 发表于 2014-6-9 10:43:40

如果是大数据备份起来消耗资源吗

the 发表于 2014-6-9 20:12:05

mark                                       

justfan 发表于 2014-6-9 21:29:18

etoole 发表于 2014-6-9 10:43 static/image/common/back.gif
如果是大数据备份起来消耗资源吗

你说的大数据执行效率问题,我不是很了解,我认为效率还可以,占用资源问题也就是仅在备份的时候,其他时间代码不运行,不占用资源。
你可以设置执行自动备份时间为当地时间凌晨访问量少的时候。另外我shell 直接使用命令行备份花时间不到5秒即备份到了dropbox(站点内容不多)。

uper 发表于 2014-6-10 06:25:55




然后建立开发者账户下添加app后获取key 和授权码

这句话是什么意思?我就注册了一个dropbox,还有开发者帐户?在那里添加app?
谢谢!


pwzx 发表于 2014-6-10 06:53:18

是啊,我也注册了dropbox,开发者帐户和app是哪的?github?

445566 发表于 2014-6-10 07:40:18

这个好,谢谢楼主了。。。。

justfan 发表于 2014-6-10 08:32:02

在https://www.dropbox.com/developers/apps/create
建立app文件夹, 具体设置如下
选择dropbox api APP, 选项设置为:
1. Files and datastores
2. No My app needs access to files already on Dropbox.
3. All file types My app needs access to a user's full Dropbox. Only supported via the Core API.
然后输入APP文件夹名称(随意)。
点击确定后,下一步你就可以找到
App key
App secret
然后参照安装步骤将这两项内容复制进去即可。


uper 发表于 2014-6-17 10:58:58





当我执行到chmod +x backup.sh 时出错,怎么回事,求帮助
谢谢!

页: [1]
查看完整版本: VPS文件和数据库备份到Dropbox 完整命令