歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> VPS數據自動備份到Dropbox

VPS數據自動備份到Dropbox

日期:2017/2/27 15:59:30   编辑:Linux教程
一 設置Dropbox
由於Dropbox強大的API,在不使用客戶端的同時,可以使用第三方腳本直接上傳文件。對比官方客戶端運行起來上百M的內存占用,這個小小的腳本完全可以滿足我們的需求。

Dropbox-Uploader https://github.com/andreafabrizi/Dropbox-Uploader

將次shell script下載到使用目錄,運行,此時根據提示設置自己的Dropbox應用API(就像申請Twitter API一樣簡單),然後按照步驟設置,然後就可以使用其命令上傳/下載文件了
#示范
./dropbox_uploader.sh upload /etc/passwd /myfiles/passwd.old
./dropbox_uploader.sh upload /etc/passwd
./dropbox_uploader.sh download /backup.zip

二 使用腳本自動打包並上傳
本腳本摘自Hostloc全球主機論壇,在基於VPS的配置進行相應修改——對應之前web服務器的相關配置
#!/bin/bash
#請自行修改以下目錄
DROPBOX_DIR=/BackUp/$(date +%Y-%m-%d) #Dropbox上的目錄
MYSQL_USER="root" #Mysql帳號
MYSQL_PASS="password" #Mysql密碼
DOMAIN_DIR=/usr/local/webserver/nginx/conf/vhost #存儲域名信息的目錄
BACK_DATA=/home/www #用於存放備份文件的目錄
DATA=/home/wwwroot #網站文件存放目錄

#定義數據 庫的名字和舊數據 庫的名字
DataBakName=Database_$(date +"%Y-%m-%d").tar.gz
WebBakName=Data_$(date +%Y-%m-%d).tar.gz
DomainName=Domain_$(date +%Y-%m-%d).tar.gz
OldData=Database_$(date -d -6day +"%Y-%m-%d").tar.gz
OldWeb=Data_$(date -d -6day +"%Y-%m-%d").tar.gz
OldDomain=Domain_$(date -d -6day +"%Y-%m-%d").tar.gz

#定義Dropbox舊數據的名字 - 30天前
Old_DROPBOX_DIR=/BackUp/$(date -d -30day +%Y-%m-%d) #Dropbox上的目錄
#刪除本地6天前的數據
rm -rf $BACK_DATA/$OldData $BACK_DATA/$OldWeb $BACK_DATA/$OldDomain

cd $BACK_DATA

#使用命令導出SQL數據 庫,並且按數據 庫分個壓縮
for db in `/usr/local/webserver/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
    (/usr/local/webserver/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done

tar zcf $BACK_DATA/$DataBakName $BACK_DATA/*.sql.gz
rm -rf $BACK_DATA/*.sql.gz

#壓縮網站數據
cd $DATA
tar zcf $BACK_DATA/$WebBakName ./*

#壓縮域名信息
cd $DOMAIN_DIR
tar zcf $BACK_DATA/$DomainNameDomainName./*./*

cd $BACK_DATA
#開始上傳
sh dropbox_uploader.sh upload  $BACK_DATA/$DataBakName $DROPBOX_DIR/$DataBakName
sh dropbox_uploader.sh upload  $BACK_DATA/$WebBakName $DROPBOX_DIR/$WebBakName
sh dropbox_uploader.sh upload  $BACK_DATA/$DomainName $DROPBOX_DIR/$DomainName

#開始刪除遠程30天前的文件
sh dropbox_uploader.sh delete $Old_DROPBOX_DIR/

echo -e "Thank you! all done"
然後使用crontab,讓此腳本每天/每幾天運行,網站的所有數據就會安全地備份到Dropbox了。
Copyright © Linux教程網 All Rights Reserved