免安装客户端,利用DropBox备份VPS上的网站数据

本文地址:http://www.oyayu.com/using-dropbox-script-backup-your-website-data-on-vps-with-installing-dropbox-client.html
文章摘要:免安装客户端,利用DropBox备份VPS上的网站数据 ,源热泵龙卷风暴消耗量,中国同性访谈修饰边幅。

彩票控重庆时时彩,新手教程正如大家所知,DropBox是国外十分流行的网盘,但是由于一些原因,我们常常不能正常使用。但好在使用http协议我们依然可以正常的访问。虽然上传和下载有些问题,但是用DropBox这个免费空间来备份网站数据无疑是灰常给力的事情。当然,如果你是Windows主机,并且有足够的内存来运行诸如Dropbox的客户端,自然不必说,云网盘的同步功能可以说是万无一失。可大内存的Win VPS不是我等能消费起的,更何况本文将介绍另一种更加给力的方法,仅利用我们熟悉的脚本,不需安装客户端,就可轻松使用DropBox备份网站数据,再结合Crontab,定时备份也就顺理成章的实现了!

虽然微魔的教程素来以“白”为特色,但还是稍微讲一下原理吧。本文中的脚本主要还是利用了DropBox本身的API,实现简单的登录并上传功能,虽然界面并不是可视化的,但是既然能工作,我们何乐而不为呢?

开始之前,先创建本地备份文件夹,以供后文使用,命令为mkdir -p /home/backup

1.在适当位置建立如下脚本(下载该脚本),命名为dropbox.sh(本文脚本位置放置在/root下)

脚本将MySQL中指定数据库导出为.sql文件,最后与网站文件一起打包成最终的tgz文件。

#!/bin/bash
DROPBOX_USER="DropBox账号"
DROPBOX_PASS="DropBox密码"
DROPBOX_DIR="DropBox目录,如/vmvps"
BACKUP_SRC="要备份的目录,如/home/wwwroot/vmvps.com"
BACKUP_DST="本地备份目录,如/home/backup"
MYSQL_USER="root"
MYSQL_PASS="MySQL密码"
MYSQL_SERVER="127.0.0.1"
MySQL_DATABASE="要备份的目标数据库,如vmvps"

NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tgz"

# Backup files.
echo "Packing databases..."
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS $MySQL_DATABASE > "$NOW-Databases.sql"

echo "Packing files..."
tar czf "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"
# Upload a file to Dropbox.
LOGIN_URL="http://www.oyayu.com/696/login"
HOME_URL="http://www.oyayu.com/810/home"
UPLOAD_URL="http://www.oyayu.com/457/upload"
COOKIE_FILE="/tmp/du_cookie_$RANDOM"
RESPONSE_FILE="/tmp/du_resp_$RANDOM"

# Login
echo -ne " > Logging in..."
curl -s -i -c $COOKIE_FILE -o $RESPONSE_FILE --data "login_email=$DROPBOX_USER&login_password=$DROPBOX_PASS&t=$TOKEN" "$LOGIN_URL"
grep "location: /home" $RESPONSE_FILE > /dev/null
if [ $? -ne 0 ]; then
echo -e " Failed!"
rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
exit 1
else
echo -e " OK"
fi

# Load home page
echo -ne " > Loading Home..."
curl -s -i -b "$COOKIE_FILE" -o "$RESPONSE_FILE" "$HOME_URL"
if [ $? -ne 0 ]; then
echo -e " Failed!"
rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
exit 1
else
echo -e " OK"
fi

# Get token
TOKEN=$(cat "$RESPONSE_FILE" | tr -d '\n' | sed 's/.*<form action="http:\/\/dl-web.dropbox.com\/upload"[^>]*>\s*<input type="hidden" name="t" value="\([a-z 0-9]*\)".*/\1/')
# Upload file
echo -ne " > Uploading '$DESTFILE' to 'DROPBOX$DROPBOX_DIR/'..."
curl -s -i -b $COOKIE_FILE -o $RESPONSE_FILE -F "plain=yes" -F "dest=$DROPBOX_DIR" -F "t=$TOKEN" -F "file=@$DESTFILE" "$UPLOAD_URL"
grep "HTTP/1.1 302 FOUND" "$RESPONSE_FILE" > /dev/null

if [ $? -ne 0 ]; then
echo -e " Failed!"
rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
exit 1
else
echo -e " OK"
rm -f "$COOKIE_FILE" "$RESPONSE_FILE"
fi

echo "Cleaning the backups..."
rm -f "$NOW-Databases.sql"
find $BACKUP_DST -mtime +3 -delete

本脚本仅备份指定的一个数据库,即变量$MySQL_DATABASE,如需备份全部数据库,可将脚本中的$MySQL_DATABASE,替换成–all-databases

2.赋予脚本运行权限

chmod +x dropbox.sh

3.测试脚本运行情况

/bin/bash dropbox.sh

4.如运行无误,设置定时任务

crontab -e

按照自己的需要输入,如需要每日备份可参考

00 00 * * * /bin/bash /root/dropbox.sh

根据微魔追踪,本文所用脚本,目前所知最早作者为一名老外(点击查看),后经国人部分转载与修改,微魔经过一些自己的修改形成本文,但由于测试时间有限,仅在自己的两个Debian 6系统的VPS进行测试。因此,难免有疏漏,敬请高手飘过不吝赐教!

猜你 喜欢

关于作者: 微魔

小微魔,大智慧!

多条评论

    1. 本脚本仅备份指定的一个数据库,即变量$MySQL_DATABASE,如需备份全部数据库,可将脚本中的$MySQL_DATABASE,替换成–all-databases。这样可以备份MySQL下所有的数据库为一个.sql文件,但是这样有个坏处,把没用的数据库也一起备份了。我昨天尝试了其他脚本的分别打包,但是在Debian下总是报错,就放弃了…等我有时间再研究一下吧~

    1. 有一个好用就行了呗。多个的话,如果都是简单的shell脚本的话,分开时段运行应该不会互相影响。不过也不推荐,这样意义不大吧

  1. 这应该不是使用API,这是抓包通过curl模拟用户登录上传的动作来自动化上传。先要确定环境是否支持curl,不止dropbox,115网盘等等都可以的。

      1. 其实网盘网赚中用VPS远程上传到网盘就是通过curl模拟登陆的,只是115不想国外的稳定,老是改版更新,数据格式上变来变去,很麻烦,我也曾经试过这样备份,可惜不久115又改了,又要抓包分析,反反复复,实用性不大。

  2. 这个,在老外的博客里找到过,测试过几次,都失败了。说是第9行还是第十行就出错,也不知道是怎么搞的

  3. 你好 请问现在dropbox 有文件上传大小限制吗 如果超出限制大小 是不是可以把数据通过分割(分卷压缩)方式上传呢 有实现的方法吗 ?

  4. [root@Ming ~]# /bin/bash dropbox.sh
    Packing databases…
    Packing files…
    tar: Removing leading `/’ from member names
    > Logging in… OK
    > Loading Home… OK
    > Uploading ‘/home/backup/2012.09.21.tgz’ to ‘DROPBOX/backup/’… Failed!

    测试每次都是失败 ,不知道为什么·

发表评论

电子邮件地址不会被公开。 必填项已用*标注

微信娱乐农场是真的吗 双色球胆拖投注技巧 幸运农场app 幸运农场2017年1月5日10点开奖结果 重庆幸运农场计划软件
重庆幸运农场复式技巧 幸运农场走势 幸运农场计划人工软件 幸运农场压19个号码 重庆幸运农场走势图水果农场
重庆幸运农场有陷阱 重庆幸运农场绝出一码 幸运农场上午几点开奖 幸运农场三全中怎么看 重庆幸场开奖软件
农场logo 重庆幸运农场怎么注册 幸运农场12开奖结果 重庆幸运农场每天几点开始 幸运农场能在线购买么
澳门赌场老板 北京赛车pk10高手心得 广东十一选五基本走势图 3d基本走势图 双色球胆拖投注表
吉林11选5开奖 甘肃11选5五码遗漏 足球赛事 幸运28投注技巧 pk10高手计划群
河北11选五最大遗漏 pk10直播 广东十一选五技巧秘籍 购买彩票 冠军pk10
贵州十一选五一定牛 北京赛车计划软件 天天中彩票 贵州十一选五一定牛 幸运飞艇公式