转载:VPS自动备份到dropbox的脚本
分类:运维技术日期:2012-02-13 - 18:21:45作者:老谢
大名鼎鼎的dropbox,终于用上了,感觉还不错的说,下载备份的速度也可以接受,
老谢的现用的备份方案为:每日备份到GD免费空间,每周备份到dropbox,每月增量备份至一台小vps,
dropbox扩容的活动,具体参考:奥义 • Dropbox使用媒体导入快速获取额外5G免费空间
#!/bin/bash DROPBOX_USER="guosuiyu@gmail.com" //Dropbox的账号 DROPBOX_PASS="12345678" //Dropbox的密码 DROPBOX_DIR="/backups" //Dropbox中的文件夹名称 BACKUP_SRC="/blog/rainbow /home /data" //需要备份的文件夹路径,可以同时指定多个 BACKUP_DST="/home/rainbow/backup" //用来存放备份的文件夹路径 MYSQL_SERVER="127.0.0.1" //连接本地MySQL MYSQL_USER="root" //本地MySQL的用户 MYSQL_PASS="12345678" //本地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/.*<form action="https:\/\/dl-web.dropbox.com\/upload"[^>]*>\s*<input type="hidden" name="t" value="\([a-z 0-9]*\)".*/\1/') # 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. echo "Dumping databases..." mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql" echo "Packing files..." tar czf "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql" dropboxUpload "$DESTFILE" "$DROPBOX_DIR" echo "Cleaning the backups..." rm -f "$NOW-Databases.sql" find $BACKUP_DST -mtime +31 -delete //这里的时间可以根据需要进行修改 |
小提醒:别忘记给脚本执行权限了哦
chmod +x DropboxBackup.sh |
原文地址:http://heylinux.com/archives/1452.html
脚本原址:http://davehope.co.uk/Blog/backup-your-linux-vps-to-dropbox/
灰常NB啊。。。
@大D 免费不用白不用 = =||
老谢的水印太YD了!!!!!!
这就是我要的菜!
@DickWu 感谢推荐使用dropbox~
不谢!
嘿嘿,貌似寒假里在tanky woo那里看到的,我以为是你写的翻半天没翻到~
@DickWu 我可没写这种脚本的技术,话说你的博客咋打不开了?
我也不知道,南方电信很正常,但是opera mini却打不开,说明中转服务器那里有问题。
自从上次ddos之后,换了ip就抽风到现在。。。。结果现在我正好还没心思折腾。。。
乃帮我ping一下看看ip地址对不对,严重怀疑ns服务器也坏了。
老谢~~我博客还正常吗?
@DickWu 挂代理以后正常了
看来IP被和谐了
@DickWu 怪不得无法访问,刚刚ping了下,我本地的网络无法解析你的域名,Orz..
难道是域名被墙?
老谢顺便帮我看看50.23.102.87这个IP可不可以直接访问?
@DickWu 直接ping50.23.102.87是通的,似乎真是域名被墙了 = =!!
@DickWu 知道问题了,原来你在用gd的dns,感觉换成dnspod吧,gd被墙的厉害
看来我得去搞DNSPOD了~还错怪了Hawkhost
我站点太大了,只能是备份到本地来着。
– -马萨卡那是水印么= =
@凤翼天堂 还真是。。
我了了个去。。我的DROPBOX每次登入密码都是错误。。每次都得取回密码修改一次。。
@VPS ROLL 是不是密码记错了?我这样倒是正常,而且备份也没问题
不会出错的。。不知道什么原因 我从DROPBOX官方登入经常都是这情况。。那个密码我最少输入了几千几万次了 这十年里。
真的是灰常NB,,,这个脚本值得研究一下。。。
请问多个MYSQL如何修改脚本?
@fxjudy 不好意思,不太清楚,没认真研究过这个脚本
如何还原呢?
@DickWu 数据文件和数据库都有了,还不好还原?
啊。那个包里面是一个文件啊。。。
好吧是我后缀看错了。。。
@DickWu 哈哈~