dropbox备份VPS
2014年11月4日
废话
搭建好网站后的第一件工作就是备份,这是多次血泪教训后的领悟。远程备份网站的办法有很多,比如ftp,rsync,scp,或者以前提到过的邮件备份。以上大多数的办法都需要有一台另外的服务器,而邮件备份受到邮箱空间大小的限制,需要手动删除邮箱里面一段时间的附件来节省邮箱空间!而dropbox通过允许用户创建应用,我们正好利用这种方式备份文件到dropbox中!dropbox现在又被墙掉了,靠!
步骤
- 下载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 - [email protected]
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天以前的备份,节省空间!
当前暂无评论 »