脚本来源:http://www.andreafabrizi.it/?dropbox_uploader

脚本的原理:利用curl(字符串浏览器)模拟网页上传。好处是不需要在vps装dropbox客户端,从而降低vps内存消耗,缺点:不能像安装dropbox客户端那样同步备份。

操作步骤:

wget http://linux-bash.googlecode.com/files/uploader.sh

下载脚本

chmod 777 uploader.sh

修改权限

bash uploader.sh dropbox登录帐号 登录密码 本地文件路径 上传文件路径

执行脚本

目前只能上传单个文件,还不能上传整个文件夹。

通过上面脚本,我们很容易就可以做出备份文件数据和数据库的脚本备份到dropbox中,然后通过crontab定时每天备份。

#!/bin/bash

DROPBOX_USER="Your Dropbox username" #dropbox用户名

DROPBOX_PASS="Your Dropbox password" #dropbox密码

DROPBOX_DIR="Directory in your dropbox account to store the backups, e.g. /backups" #dropbox上存放备份文件目录

BACKUP_SRC="/home /var/www /var/git /etc /root" #vps上需要备份的目录 多个目录以空格隔开

BACKUP_DST="/tmp" #本地临时存放文件或者数据库的目录

MYSQL_SERVER="127.0.0.1" #mysql数据库地址

MYSQL_USER="root" #mysql数据库用户名

MYSQL_PASS="Your MySQL password" #mysql数据库密码

#

# Stop editing here.

NOW=$(date +"%Y.%m.%d")

DESTFILE="$BACKUP_DST/$NOW.tgz"

#

# Upload a file to Dropbox.

# $1 = Source file

# $2 = Destination file.

function dropboxUpload

{

#

# Code based on DropBox Uploader 0.6 from http://www.andreafabrizi.it/?dropbox_uploader

LOGIN_URL="https://www.dropbox.com/login"

HOME_URL="https://www.dropbox.com/home"

UPLOAD_URL="https://dl-web.dropbox.com/upload"

COOKIE_FILE="/tmp/du_cookie_$RANDOM"

RESPONSE_FILE="/tmp/du_resp_$RANDOM"

UPLOAD_FILE=$1

DEST_FOLDER=$2

# 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/.*

]*>\s*

# Upload file

echo -ne " > Uploading '$UPLOAD_FILE' to 'DROPBOX$DEST_FOLDER/'..."

curl -s -i -b $COOKIE_FILE -o $RESPONSE_FILE -F "plain=yes" -F "dest=$DEST_FOLDER" -F "t=$TOKEN" -F "file=@$UPLOAD_FILE" "$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

}

# Backup files.

mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"

tar cfz "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"

dropboxUpload "$DESTFILE" "$DROPBOX_DIR"

rm -f "$NOW-Databases.sql" "$DESTFILE"

要修改的部分

DROPBOX_USER="Your Dropbox username" #dropbox用户名

DROPBOX_PASS="Your Dropbox password" #dropbox密码

DROPBOX_DIR="Directory in your dropbox account to store the backups, e.g. /backups"

#dropbox上存放备份文件目录

BACKUP_SRC="/home /var/www /var/git /etc /root" #vps上需要备份的目录 多个目录以空格隔开

BACKUP_DST="/tmp" #本地临时存放文件或者数据库的目录

MYSQL_SERVER="127.0.0.1" #mysql数据库地址

MYSQL_USER="root" #mysql数据库用户名

MYSQL_PASS="Your MySQL password" #mysql数据库密码

放到计划任务中定时备份

$ crontab -e

0 0 1 * * /bin/bash /root/DropboxBackup.sh

相关日志:

linux dropbox自动同步,Linux免dropbox客户端备份脚本相关推荐

  1. linux目录自动同步,linux 下面文件夹的自动同步 | Think in Drupal

    linux 下面文件夹的自动同步 我们有一个Drupal网站,里面放了很多客户的文档资源,用户希望能够从一个磁盘上,备份到另一个磁盘上,这两个磁盘都可以访问到. 安装rsync 安装inotify t ...

  2. linux目录自动同步,Linux下rsync+inotify实现实时文件自动同步

    背景:随着时代的发展,手工的同步文件的功能已经不适合为高效的现代化企业的服务了. rsync的局限性: 1.对于大的文件(百万级.千万级的)同步耗时. 2.不能实时的检测,rsync是根据Linux守 ...

  3. 用Kickstart批量安装Linux系统、Kickstart安装,linux批量安装;Linux的Kickstart的 无人值守安装;linux pxe自动安装linux系统...

    用Kickstart批量安装Linux|Kickstart,批量安装:Linux的Kickstart的 无人值守安装:linux pxe自动安装linux系统: KickStart + DHCP + ...

  4. RSYNC 自动同步文件免密

    rsync 免密方式自动同步文件: rsync的客户端方式能够自动同步文件,非常方便,但是它在远程拷贝文件之前提示还需要输入一个密码,要实现脚本自动拷贝,必须要优化掉这个步骤,让rsync以密码文件的 ...

  5. linux rsync 目录同步,linux下使用rsync同步目录

    本文描述了linux下使用rsync单向同步两个机器目录的问题. 使用rsync同步后可以保持目录的一致性(含删除操作). 数据同步方式 1.从主机拉数据 备机上启动的流程 同步命令: rsync - ...

  6. linux redis自动重启,Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动

    Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动 >>>>>>>>>>>>>> ...

  7. linux 界面自动输入密码,Linux中shell脚本如何自动输入密码

    shell脚本在处理自动循环或大的任务方面可节省大量的时间,通过创建一个处理任务的命令清单,使用变量.条件.算术和循环等方法快速创建脚本以完成相应工作,这比在命令行下一个个敲入命令要省时省力得多. 但 ...

  8. linux时间自动同步参数详解,综合架构实时同步详解

    day35 综合架构实时同步 课程介绍: 1.实时同步原理概念 2.实现实时同步方式 3.实现实时同步方式 1)利用脚本实现实时同步 2)利用软件实现实时同步 知识回顾 全网备份项目思路: 1.对工作 ...

  9. linux服务器数据同步,Linux服务器数据定期同步和备份方式

    数据安全是做数据分析的人需要关注的一大问题.对于我们分析的关键数据.使用的关键脚本都需要定期备份. scp 最简单的备份方式,就是使用cp (本地硬盘)或scp (远程硬盘)命令,给自己的结果文件新建 ...

  10. linux 文件双向同步,Linux文件双向实时同步rsync

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 echo"/usr/sersync/sersync2-d-o/usr/sersync/confxml.xm ...

最新文章

  1. P4722 【模板】最大流
  2. 11、计算机图形学——几何(贝塞尔曲线与曲面)
  3. spring boot 加载application配置文件
  4. python websocket服务器https_Socket与WebSocket以及http与https重新总结
  5. php添加gd库,linux下为php添加GD库(重新编译php)
  6. 在linux下面实现检测按键(Linux中kbhit()函数的实现)
  7. hnu 暑期实训之选美比赛
  8. Bailian2788 二叉树【二叉树】
  9. java基础5 (一维)数组和二维数组
  10. Graphpad prism 使用教程汇总(更新)
  11. 斐波那契堆python实现——Fibonacci Heaps
  12. Spring源码解析(一)下载及编译(版本5.2.x)
  13. digester_Apache Digester示例–轻松配置
  14. Xposed框架分析
  15. 再见 xxl-job!更强大的新一代分布式任务调度框架来了
  16. 智学.com查成绩 html,智学.com查分数
  17. 时间戳转换工具java_时间戳转换_时间戳转换工具_时间戳转换成时间日期_55查询...
  18. 关于spring的aop
  19. 探索者STM32F407开发板学习笔记一安装调试,串口下载
  20. 四川农业大学自对口计算机,2020四川高考一分一段表出炉!理科696分以上61人,文科645分以上38人!附:最全志愿填报攻略......

热门文章

  1. 如何解决github的code按钮一直转下载不了
  2. 选择消失,只因一千个伤心的理由
  3. 关于MD5码的一些自我总结
  4. CE实现植物大战僵尸后台运行
  5. 电路交换技术与包交换技术
  6. 多天线技术(MIMO)基础
  7. html电子贺卡国庆,中秋贺卡设计欣赏 电子贺卡制作 中秋电子贺卡模板
  8. 什么是软件外包公司?要不要去外包公司?
  9. IBM服务器纽扣电池告警信息,IBM笔记本数字错误码信息.doc
  10. ajax 返回html不返回json,jQuery ajax调用返回HTML而不是JSON的Ajax响应