- 逆向行駛 - https://520.be/ -

Dropbox Uploader的自動備份腳本

Dropbox

Dropbox Uploader 的自動備份腳本 🔥☁️

把網站跟資料庫自動打包,直接丟進 Dropbox 雲端倉庫,再也不用擔心主機掛掉或空間不夠


🟦 🟦 🟦

為什麼要用 Dropbox 當備份終點站?先講真實痛點 😱

想像你的網站就像家裡的重要文件櫃。以前我們會把備份檔丟到 FTP 空間,或是寄到信箱。但 FTP 空間常常不夠大、信箱又有 25MB 限制,一碰到大型網站就卡住。這時候 Dropbox 就成了超好用的「雲端倉庫」。

Dropbox 是目前最熱門的雲端硬碟服務之一,免費帳號就有不錯的空間,付費版更是大得驚人。重點是:它穩定、跨平台、還能自動同步到你的電腦。只要把備份檔自動上傳到 Dropbox,就算主機整個炸了,你還能從任何地方把檔案抓回來。

這篇就是教你怎麼利用 GitHub 上超經典的 Dropbox Uploader [1] 程式,搭配以前那支備份 shell script,讓系統每天自動把網站檔案跟資料庫打包,直接送到 Dropbox。整個過程就像請一位不會抱怨的搬家工人,每天固定時間把東西搬到雲端倉庫,還會自動清理過期紙箱。

🔥 懶人包結論:只要設定一次 Dropbox Access Token + 一支腳本,就能每天自動備份網站與資料庫到 Dropbox,並自動刪除過期檔案。完全不用再手動上傳。


🟩 🟩 🟩

事前準備:取得 Dropbox 的「萬能鑰匙」🔑

要讓腳本能自動上傳,首先得拿到 Dropbox 的授權。這就像你要請搬家工人進你家倉庫,必須先給他一把專用鑰匙(Access Token)。以下是詳細步驟,一步一步跟著做就不會迷路。

  • ❶ 登入 Dropbox 的開發控制台 [2],然後點擊 Create app
  • ❷ 接下來進入 DBX Platform 的設定頁面。權限一定要選「應用程式資料夾」(App folder),這樣腳本只能動到它自己的資料夾,不會影響你其他重要檔案。另外在 Name your app 的框框中,不能輸入有關 dropbox 的字樣,要特別注意,不然會被拒絕 🤓
  • ❸ 點擊 Generated access token 此處產生 access token,然後立刻把它筆記下來。這串很長的英數字就是你的萬能鑰匙,千萬別公開給別人。

完成後你會看到類似這樣的畫面(原文附有截圖):

🚨 畫重點!千萬別踩雷:Access Token 一旦洩漏,別人就能任意上傳或刪除你 App 資料夾裡的檔案。建議只給這支腳本使用,不要亂貼到公開地方。


🟪 🟪 🟪

建立 Access Token 設定檔(把鑰匙放進專用抽屜)🗄️

拿到 Access Token 之後,我們要把它寫進系統,讓 Dropbox Uploader 知道怎麼用這把鑰匙。

直接建立 Dropbox Uploader 需要的 access token 設定值,將剛剛在 Dropbox 開發控制台產生的 access token 替換到下方 OOXX 的地方:

這段指令的意思是:先刪掉舊的設定檔(如果有的話),再重新建立一個乾淨的設定檔,把你的 Access Token 寫進去。完成後,這個檔案就會躺在你的家目錄底下,變成腳本的專用鑰匙匣。


🔶 🔶 🔶

安裝 Dropbox Uploader(把搬家工人請回家)👷

接下來要把 Dropbox Uploader 本體下載到伺服器。建議放在

目錄,乾淨又好管理。日後如果要升級,也是跑同樣的指令就好。

這幾行指令做了什麼?

  • ❶ 先刪掉舊版本(避免殘留)
  • ❷ 進入 目錄
  • ❸ 用 curl 直接從 GitHub 下載最新版腳本
  • ❹ 給它執行權限,這樣系統才肯讓它跑

安裝完成後,你就可以用它來上傳、下載、刪除檔案了。這支程式非常輕量,不需要額外安裝一堆套件,特別適合 VPS 或精簡主機。


🔷 🔷 🔷

常用指令大全(像遙控器一樣好用)🎮

安裝好之後,先熟悉一下常用指令。這些指令就像給搬家工人下達的口令,清楚又直接。以下整理成表格,方便你日後查閱:

用途 指令範例 說明
檢查設定值 /opt/dropbox_uploader.sh info 確認 Access Token 是否正確
檢查空間大小 /opt/dropbox_uploader.sh space 看看 Dropbox 還剩多少空間
上傳單一檔案 /opt/dropbox_uploader.sh upload OOXX.tar.gz / 把檔案丟到 App 資料夾根目錄
上傳整個資料夾 /opt/dropbox_uploader.sh upload /opt/Doc / 連同裡面的子目錄一起上傳
下載檔案 /opt/dropbox_uploader.sh download OOXX.tar.gz /opt 從雲端抓回本機
下載資料夾 /opt/dropbox_uploader.sh download Doc /opt 連同子目錄一起下載
新增資料夾 /opt/dropbox_uploader.sh mkdir Doc 在雲端建立新資料夾
刪除檔案 /opt/dropbox_uploader.sh delete OOXX.tar.gz 刪除指定檔案
列表 /opt/dropbox_uploader.sh list 查看目前雲端有哪些檔案

完整指令列表如下(直接複製就能用):


🟩 🟩 🟩

建立完整備份腳本(把搬家流程自動化)📦

現在來到重頭戲!我們要把「備份資料庫 + 壓縮網站 + 上傳到 Dropbox + 刪除過期檔」整合成一支腳本。這樣以後只要執行一次,或是丟進 crontab,就能每天自動完成。

以下是完整腳本內容,記得把紅色提示的地方改成你自己的參數:

這支腳本做了什麼?我們用「搬家」來比喻一次:

  • ❶ 先準備一個乾淨的暫存區(BACKUP_DIR)
  • ❷ 把 7 天前的舊資料庫備份丟掉,把 1 天前的舊網站備份丟掉(節省空間)
  • ❸ 自動修復並最佳化資料庫(搬家前先把家具擦乾淨)
  • ❹ 把每個資料庫各自匯出成 .sql 檔
  • ❺ 壓縮成一個大 tar.gz,並刪除臨時的 .sql
  • ❻ 壓縮整個網站資料夾(排除快取與 Akeeba 備份)
  • ❼ 把兩個壓縮檔上傳到 Dropbox
  • ❽ 刪除 Dropbox 裡 7 天前的舊檔
  • ❾ 叮一聲通知你完成(printf ‘\007’)

寫完後記得執行一次測試,確認沒問題再丟進排程。


🟦 🟦 🟦

設定每天自動執行(讓搬家工人準時上班)⏰

測試沒問題後,就把腳本丟進 crontab,讓系統每天固定時間自動跑。

以下指令會把「每天早上 6 點執行」的排程加進去,並把執行紀錄寫進

最後一行

是用來確認排程有沒有成功寫入。如果看到類似

就代表成功了。

💡 你知道嗎?很多人設完排程就忘記,結果半年後網站出事才發現備份其實一直有在跑。這就是自動化的最大價值——你不用記得,它也不會忘記。


🟪 🟪 🟪

參數怎麼填?最容易搞錯的地方一次講透 ✍️

腳本最上面「你要修改的地方」是成敗關鍵。這裡用表格直接對照:

參數名稱 你要填什麼 注意事項
DROPBOX_UPLOADER Dropbox Uploader 的完整路徑 通常是 /opt/dropbox_uploader.sh
BACKUP_DIR 本機暫存備份的位置 建議用 /opt/backup
WEB_DATA 要備份的網站路徑 可空格分隔多個路徑
MYSQL_USER / MYSQL_PASS MySQL 帳號密碼 建議用有足夠權限的帳號
MYSQL_PATH 等 指令路徑 大多數主機不用改

🔶 🔶 🔶

常見問題與除錯小技巧 🛠️

  • 上傳失敗? 先執行 確認 Token 是否正確,再檢查網路有沒有被防火牆擋住。
  • 權限問題? 確認腳本有 ,以及 檔案權限不要設太開放。
  • 空間不夠? 查看,必要時手動刪除舊檔或升級 Dropbox 方案。
  • 想改保留天數? 把腳本裡的 改成你想要的天數即可。
  • 多個網站怎麼備份? 用空格分隔多個路徑,腳本會一次打包。

🔷 🔷 🔷

寫在最後:不只是本機備份,雲端備份是現代網站的標準配備 ☁️

以前我們只能把備份丟在同一台主機或 FTP,風險其實還是很高。現在有了 Dropbox Uploader,你可以把備份真正「搬離」主機,放到另一個完全獨立的雲端空間。就算主機商倒閉、硬碟損壞、被駭客清空,你都還有最後一道防線。

這套流程我自己用了很久,從早期的共享主機一路用到現在的 VPS,中間經歷過好幾次突發狀況,都是靠它把資料救回來。現在把完整教學公開,希望也能幫到需要的人。

如果你有改得更好的版本,或是遇到奇怪的錯誤,歡迎留言一起討論。也記得去下載範例檔案,省得自己從頭打字。


㊙️ 範例檔案下載

備份做一次,安心睡十年。
讓 Dropbox 當你的雲端保險庫吧!