昔我往矣

dropbox备份VPS

2014年11月4日

废话
搭建好网站后的第一件工作就是备份,这是多次血泪教训后的领悟。远程备份网站的办法有很多,比如ftp,rsync,scp,或者以前提到过的邮件备份。以上大多数的办法都需要有一台另外的服务器,而邮件备份受到邮箱空间大小的限制,需要手动删除邮箱里面一段时间的附件来节省邮箱空间!而dropbox通过允许用户创建应用,我们正好利用这种方式备份文件到dropbox中!dropbox现在又被墙掉了,靠!

步骤

  1. 下载dropbox_uploader.sh
# mkdir ~/bin
# cd bin
# wget https//raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
# chmod +x dropbox_uploader.sh
# ./dropbox_uploader.sh

根据以上命令的提示,使用浏览器打开:https://www2.dropbox.com/developers/apps 点击“Create App”,然后选择“Dropbox API app”,再选择“Files and datastores”,然后继续一步步配置,最后点击“Create app”
记住“APP key”,“App secret”,后面会用到的!
在提示App key和App secret的时候,输入记下来的两个值,然后是一些权限和确认的消息!最后打开认证链接,完成配置过程!在~/.dropbox_uploader中可以看到刚才输入的信息!

运行dropbox_uploader.sh命令,不带任何参数,可以看到所有的选项:

# ./dropbox_uploader.sh 
Dropbox Uploader v0.14
Andrea Fabrizi - andrea.fabrizi@gmail.com

Usage: ./dropbox_uploader.sh COMMAND [PARAMETERS]...

Commands:
     upload   <LOCAL_FILE/DIR ...>  <REMOTE_FILE/DIR>
     download <REMOTE_FILE/DIR> [LOCAL_FILE/DIR]
     delete   <REMOTE_FILE/DIR>
     move     <REMOTE_FILE/DIR> <REMOTE_FILE/DIR>
     copy     <REMOTE_FILE/DIR> <REMOTE_FILE/DIR>
     mkdir    <REMOTE_DIR>
     list     [REMOTE_DIR]
     share    <REMOTE_FILE>
     info
     unlink

Optional parameters:
    -f <FILENAME> Load the configuration file from a specific file
    -s            Skip already existing files when download/upload. Default: Overwrite
    -d            Enable DEBUG mode
    -q            Quiet mode. Don't show messages
    -p            Show cURL progress meter
    -k            Doesn't check for SSL certificates (insecure)

For more info and examples, please see the README file.

脚本
这个程序可以完成上传,下载,删除,复制,创建文件夹等等很多功能!下面是我的备份脚本xnow_backup.sh:

#!/bin/bash
dropbox_path=/root/bin
dir_name=xnow.backup
httpd_conf_file=/etc/httpd/conf/httpd.conf

today=`date +%Y%m%d`
todelday=`date --date="30 days ago" "+%Y%m%d"`
#todelday=`date +"%Y%m%d"`
todelfile=/xnow_${todelday}.tgz

backup_dir=/tmp/$dir_name
if [ -d $backup_dir ]
then
    rm -rf $backup_dir
fi
mkdir $backup_dir
xnow_dir=$backup_dir/xnow
mkdir -p $xnow_dir

www_xnow=/data/xnow.me/
tar_xnow=$xnow_dir/xnow_${today}.tgz

mysqldump -u lhzhi -pxxx xnow  > $xnow_dir/${dir_name}_xnow.sql
tar czfP  $tar_xnow $www_xnow $xnow_dir/${dir_name}_xnow.sql $httpd_conf_file


# 开始上传到 Dropbox
echo -e "Start uploading..."
$dropbox_path/dropbox_uploader.sh upload  $tar_xnow /
 
# 清理 Dropbox 里 30 天前的旧数据
back_file_count=`$dropbox_path/dropbox_uploader.sh list | grep -E xnow.*tgz | wc -l`
if [ $back_file_count -gt 30 ]
then 
    $dropbox_path/dropbox_uploader.sh delete  $todelfile
fi
 
echo -e "Thank you! All done."

把xnow_backup.sh加入crontab中,每天运行一次,由于dropbox的空间有限(我的是5G),所以脚本中有一个功能是删除30天以前的备份,节省空间!

当前暂无评论 »

添加新评论 »