香港唔少中小企嘅客戶資料、報價單、會計數,到今日都仲係放喺一部電腦「一個位」咁擺。部機一壞、一中勒索病毒,又或者手快快刪錯嘢,可能成間公司十幾廿年嘅心血就咁冇晒。專業備份方案動輒幾千蚊一年,但其實用 Python 十零行 code,就可以砌到一個日日自動跑嘅備份系統,唔使記住手動做,仲一蚊都唔使花。
點解一定要「自動」備份?
手動備份最大嘅敵人係「唔記得」。忙起上嚟,一個星期唔記得做一次係家常便飯;到你真係要還原嗰陣,先發現最近嗰份已經係三個月前。自動備份有三個好處:
- 夠穩陣 —— 每日定時跑,唔靠記性
- 夠新 —— 日日都有最新一份,最多只係損失一日嘅資料
- 夠平 —— 用 Python 內置嘅 shutil,完全免費
準備:裝好 Python 同 schedule
如果你未裝 Python,先去 python.org 下載最新版本,安裝時記得剔 Add Python to PATH。裝好之後,開「命令提示字元」打下面呢句,裝埋排程要用嘅 schedule 套件:
pip install schedule
完整程式碼
開一個新檔案 backup.py(記事本就得),貼入以下 code:
import shutil
import schedule
import time
import os
from datetime import datetime
SRC = r"C:\Users\you\Documents\重要資料" # 要備份嘅資料夾
DST_ROOT = r"D:\Backup" # 備份去邊(第二隻硬碟 / NAS)
def backup():
today = datetime.now().strftime("%Y-%m-%d")
dst = os.path.join(DST_ROOT, "backup_" + today)
if os.path.exists(dst):
print(today + " 已經備份咗,跳過")
return
shutil.copytree(SRC, dst)
print("備份完成 -> " + dst)
schedule.every().day.at("18:00").do(backup)
print("備份程式已啟動,每日 18:00 自動跑")
while True:
schedule.run_pending()
time.sleep(60)逐行解釋
- import shutil —— Python 內置嘅檔案操作工具,負責成個資料夾 copy。
- SRC / DST_ROOT —— 你自己改嘅兩個路徑:要備份嘅嘢,同備份去邊。記得 DST_ROOT 要揀另一隻硬碟,唔好同原檔放埋一齊。
- backup() —— 核心函式。先用今日日期砌出目標資料夾名(例如 backup_2026-09-01),再檢查有冇做過;未做過先用 shutil.copytree 成個 folder 連 subfolder 一齊 copy。
- schedule.every().day.at("18:00") —— 設定每日下午六點自動執行 backup()。
- while True —— 令程式長駐,每 60 秒醒一次檢查有冇嘢要做。呢個 loop 唔食資源,放心長開。
進階:只備份改過嘅檔案
如果資料夾好大,日日全份 copy 好嘥位。想慳位,可以用 shutil.copy2 加 os.walk 逐個檔案比對修改時間,淨係抄新改過嘅:
import os
import shutil
SRC = r"C:\Users\you\Documents\重要資料"
DST = r"D:\Backup\incremental"
for root, dirs, files in os.walk(SRC):
rel = os.path.relpath(root, SRC)
target_dir = os.path.join(DST, rel)
os.makedirs(target_dir, exist_ok=True)
for f in files:
src_f = os.path.join(root, f)
dst_f = os.path.join(target_dir, f)
if (not os.path.exists(dst_f)) or (os.path.getmtime(src_f) > os.path.getmtime(dst_f)):
shutil.copy2(src_f, dst_f)呢個版本會跳過無改動嘅檔案,只抄新嘢,日日跑都唔會越嚟越慢。
點樣令佢真係「日日自動跑」?
最簡單係上面個 while True 版本,直接放喺公司部長開嘅電腦行就得。如果你想用系統排程,Windows 可以咁做:
- 撳 Win 搜尋「工作排程器」(Task Scheduler)
- 「建立基本工作」→ 觸發條件揀「每日」,時間設 18:00
- 操作揀「啟動程式」,程式填 python,引數填 C:\路徑\backup.py
Mac / Linux 用家可以用 cron 一行搞掂。
三個安全貼士
- 分開存放 —— 備份一定要落另一隻硬碟或 NAS,最好再複製一份上雲端,做到「3-2-1」備份原則。
- 定期試還原 —— 唔好等到出事嗰日先知份備份壞咗,每季抽一次試 restore。
- 加密敏感資料 —— 客戶私隱、會計數呢類敏感檔案,備份前最好先加密。
總結
自動備份唔係大公司專利。用 Python 十零行 code,你就可以有一個日日定時、自動命名、仲識跳過重複嘅備份系統,成本係零,效果同幾千蚊一年嘅方案一樣咁穩陣。由今日開始,唔好再靠記性去保護你嘅生意資料。