微魔首先不卖弄了,技术贴源于网络达人,微魔也顺势膜拜~之前也跟大家分享了dropbox的自动备份(传送),但是时间过得有点久了,微魔也懒得重新验证原来的代码。索性我们就来个2014年新版的教程吧。
由于DropBox常年在墙外,因此微魔强烈建议美国VPS用户使用本脚本!
在这里我们需要两个文件,一个是打包的脚本(原始代码,本文有改动与修正!),一个是Dropbox上传的脚本(原始代码)。顺序是:打包脚本(backup.sh)对数据库和文件进行打包(格式为:时间.tgz文件)并调用上传脚本(dropbox_uploader.sh)上传。
本文两个脚本默认存放在/root也就是~文件夹内,如须自定义移动,请注意相关修改路径
1. 打包代码(命名为backup.sh)
只需要修改MySQL用户名和密码
#!/bin/bash BACKUP_SRC="/home" BACKUP_DST="/tmp" MYSQL_SERVER="127.0.0.1" MYSQL_USER="MySQL用户名" MYSQL_PASS="MySQL密码" #VPS_ID="vpsidentifier" # Stop editing here. NOW=$(date +"%Y.%m.%d") DESTFILE="$BACKUP_DST/$NOW.tgz" #DESTFILE="$BACKUP_DST/$VPS_ID.$NOW.tgz # Backup files. mysqldump -u $MYSQL_USER -h $MYSQL_SERVER --events --ignore-table=mysql.event -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql" tar cfzP "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql" #upload to dropbox. make sure the following line points to the correct dropbox_uploader.sh location /root/dropbox_uploader.sh upload "$DESTFILE" ./ #remove temporary files rm -f "$NOW-Databases.sql" "$DESTFILE"
虽然说是打包代码,但是会在后面调用我们后来需要的上传代码。
2.上传代码(dropbox_uploader.sh)
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
2.1 赋予运行权限并首次运行
chmod +x dropbox_uploader.sh ./dropbox_uploader.sh
2.2 首次运行,需要输入一些信息,会显示如下图信息
This is the first time you run this script. 1) Open the following URL in your Browser, and log in using your account: https://www2.dropbox.com/developers/apps 2) Click on "Create App", then select "Dropbox API app" 3) Select "Files and datastores" 4) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder 5) Enter the "App Name" that you prefer (e.g. MyUploader287263231732534) Now, click on the "Create App" button. When your new App is successfully created, please type the App Key, App Secret and the Permission type shown in the confirmation page: # App key: 修改成你的App key # App secret: 修改成你的App secret # Permission type, App folder or Full Dropbox [a/f]: a
2.3 如何获取App Key和App Secret
打开Dropbox的开发者界面(传送),点击Create App,按照如下界面操作
按照setting中就可以看到这两项填入SSH中即可
最后,他会返回一个连接(是Dropbox的授权连接),用浏览器打开,点击Allow即可
Please open the following URL in your browser, and allow Dropbox Uploader
to access your DropBox folder:
--> https://www2.dropbox.com/1/oauth/authorize?oauth_token=XXXXXX
3. 设置crontab定时运行脚本
推荐手动运行一下/bin/bash /root/backup.sh,看看有没有报错
由于backup.sh自动会调用dropbox_uploader.sh,因此,我们只需要设置backup.sh的定时任务即可
运行如下命令
crontab -e
加入如下代码(每天凌晨4点自动运行脚本)
# m h dom mon dow command 0 4 * * * /bin/bash /root/backup.sh
大功告成!
本文源码虽非微魔原创,但是测试,修改等过程耗费了很多时间、精力和心血,支持转载,但请保留本文链接,否则均视为小偷行径!!
😛 正需要
备份数据库,挺好的