在VPS中安裝Dropbox實現網站的實時備份[轉]
這幾天由于四處加共享,今天我的主用的那個Dropbox帳號空間滿了,使用狀態竟然是120%,我急了,情急之下我就自己邀請自己先加250M再 說,可是它必須安裝客戶端,正常同步一次以后才給增加空間,我就想著我應該把它裝到那里去,因為我平常能接觸到的機器都留下了Dropbox的足跡。實在 懶得折騰弄雙開了。于是我就瞄準了我的VPS,舉目四望我唯一沒有裝過Dropbox而我又能全權控制的機器就剩下它了…
可是現在難題來了,Dropbox初次使用需要運行一個gtk的向導來關聯你的帳號,可是我那小小的VPS哪能奢侈到去裝個Xserver呀。不過想想它那個gtk的向導對于只使用Dropbox命令行的模式只需要運行那么一次,而這一次看起來還是挺簡單的,就是本機器與帳號的綁定,那它的綁定信息肯定存在于某個文件之中……如果以上的假設成立的話,我只需要修改這個文件,填入我的帳號信息就ok了……
鑒于Dropbox是個半開源的產物,有這樣需求的肯定不止我一人,于是我就google之,看看有沒有能直接使用的解決辦法,你還別說,還真讓我找到了,就是這個dbmakefakelib.py腳本,從名字就可以看出它會創建一些虛假的lib來欺騙Dropbox的gui向導,使其能夠運行。
Dropbox運行后會創建一個sqlite的db文件,里面就保存著本機器的一些信息,然后我們只需要手動將其與自己的帳號綁定就能實現同步了,邏輯說了一大堆,其實實際操作起來還是很簡單的,我這就列下步驟:
1、登陸進VPS或者是服務器,進入用戶目錄
cd
2、下載dropbox的客戶端,要For linux那個而非For Nautilus的
wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86
這個是32位的,64位就這樣
wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64
3、解壓
tar xzvf dropbox.tar.gz
4、下載dbmakefilelib.py并運行
wget http://dl.dropbox.com/u/637552/Dropbox/dbmakefilelib.py
python dbmakefilelib.py
如果出現以下信息,說明它運行正常
adding library libgtk-x11-2.0.so.0
adding library libgdk-x11-2.0.so.0
adding library libatk-1.0.so.0
adding library libgdk_pixbuf-2.0.so.0
adding library libpango-1.0.so.0
adding library libgobject-2.0.so.0
adding library libgmodule-2.0.so.0
adding library libgthread-2.0.so.0
adding library libglib-2.0.so.0
adding function gtk_tree_view_new
adding function gtk_toolbar_new
adding function g_threads_got_initialized
adding function gtk_grab_remove
adding function gtk_button_new
adding function gtk_frame_new
adding function gtk_major_version
... lots more of this ...
adding function g_static_rw_lock_writer_unlock
adding function g_value_set_boxed_take_ownership
adding function g_boxed_type_register_static
adding function g_datalist_clear
dropboxd ran for 15 seconds without quitting - success?
看到它的提示了嗎,Dropbox已經啟動了,讓你運行15秒后再退出,這個過程就是dropbox生成機器信息并保存到db文件的,其實對于國外的vps來說幾秒時間就夠了,我們ctrl-c將其退出,完成接下來的步驟
5、進入Dropbox的dot目錄導出機器信息
$ cd .~/.dropbox
$ sqlite3 dropbox.db
SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .dump config
我們會在導出的信息中看到如下的一串字符
INSERT INTO "config" VALUES(4,'host_id','VmQ0NWFlMTdmYmQ3OGYzMzgyOTM0NWMzN2Q1MGFkOTIzCnAxCi4= ');
這個host_id就是機器的唯一標識,我們需要用它來跟自己的賬戶進行匹配,不過在這之前還有個工作需要做,因為上面的那長串字符很明顯可以看出 是用base64編碼后的結果,我們得先把它解碼再說,注意這里Dropbox耍了個小花招,這串字符串前面的那個”V“,是無用的,我們在解碼后的把它 忽略掉
6、將base64字符串解碼
$ echo mQ0NWFlMTdmYmQ3OGYzMzgyOTM0NWMzN2Q1MGFkOTIzCnAxCi4= | base64 -d
Vd45ae17fbd78f33829345c37d50ad923
p1
我的結果是Vd45ae17fbd78f33829345c37d50ad923,忽略掉”V“,就是d45ae17fbd78f33829345c37d50ad923
7、將賬戶信息與機器信息綁定
這步很簡單,只需要訪問以下網址,并登陸
HOSTID替換成你剛才解碼出來的那串字符就行了
https://www.dropbox.com/cli_link?host_id=HOSTID
8、建立dropbox的同步目錄
dropbox的同步目錄默認的是~/Dropbox
$ mkdir ~/Dropbox
9、運行,開始你的同步
$ ~/.dropbox-dist/dropboxd &
到這里dropbox就可以正常運行并同步了,文章標題說的是備份網站數據,那么我們就來使我們的網站數據能夠同步到dropbox服務器上
其實很簡單,就是建立符號連接而已,windows之前是沒有這個功能的
比如要備份/var/www這個目錄
cd ~/Dropbox
$ ln -s /var/www web_backup
這就可以了,或者要備份/etc目錄
$ cd ~/Dropbox
$ ln -s /etc etc_backup
ok.發揮你的想象盡情的使用吧。
另外,如果你看到這篇文章感覺對你有用而你又要馬上實施你的同步備份,且沒有Dropbox帳號,那么就用我的這個推薦鏈接注冊吧,這樣你我都能得到額外的250M空間,沒辦法,在下現在空間真的是太吃緊了,謝謝。
https://www.dropbox.com/referrals/NTEzOTQ2NjI5
轉載請注明: 轉自:在VPS中安裝Dropbox實現網站的實時備份 | LazyHack.Net












@小北, 可以用crontab實現設置多長時間備份一次。
這個東西太帥了
安裝成功 遇到點狀況
我把log文件也加入了實時備份 每次寫日志 都要本地同步一次
有沒有辦法設置多長時間同步一次?1個小時或者一天一次什么的 ?
@xkx, 打包后上傳到dropbox會占用,可以選擇在訪問用戶比較少的時候上傳。
@lewy, 嗯,免費用戶最多可以到3G。
贊,這個太有用了。
只是傳來傳去原來文件的權限會丟掉。。只好先打包了。
不過打包后會多占帶寬吧?
好文。。dropbox的免費用戶最大容量不是只能到3G?
[...] This post was mentioned on Twitter by Rain Yang and VPSer, darkhucx. darkhucx said: New blog post: 在VPS中安裝Dropbox實現網站的實時備份 http://www.0794baidu.com/manage/dropbox-backup-in-vps.html (via @vpser) [...]