可靠的 Thunderbird 備份應該保留整個使用者設定文件,而不僅僅是可見收件匣的副本。使用者設定檔儲存帳戶設定、已下載的郵件、通訊錄、過濾器和其他使用者資料。如果在備份執行時 Thunderbird 處於關閉狀態,則可以透過定時備份來同時保護本機郵件和聯絡人。本指南將介紹如何使用 PowerShell 和工作排程器在 Windows 上設定此過程,然後示範如何檢查備份是否可用。
Thunderbird設定檔備份包含哪些內容?
Thunderbird 將其工作資料儲存在設定檔資料夾中。 Mozilla 的設定檔匯出工具指出,設定檔備份包含帳戶、郵件、通訊錄和設定。因此,設定檔是進行本機自動備份的理想選擇。請務必使用目前活動的設定檔;一台電腦可以包含多個設定文件,如果備份了錯誤的設定文件,可能會產生一個看似有效的資料夾,但其中卻缺少您期望的郵件。
有兩個重要的限制。首先,IMAP 帳號通常代表儲存在郵件伺服器上的郵件。本機設定檔副本僅包含 Thunderbird 已同步以供離線使用的資料夾和郵件的郵件正文。它並非伺服器上所有郵件的獨立存檔。其次,遠端 CardDAV 通訊錄(例如由服務託管的聯絡人)仍然由該服務控制。設定檔備份可以保留 Thunderbird 的設定和本地地址簿數據,但它不能取代聯絡人提供者提供的單獨備份。
在設定備份腳本的來源路徑之前,請從故障排除資訊中開啟 Thunderbird 的設定檔位置。
步驟 1:找到設定檔並準備備份目標位置
在 Thunderbird 中,開啟應用程式選單,選擇「說明」 ,然後選擇「故障排除資訊」 。在「應用程式基本資訊 」下,找到「設定檔目錄」 ,然後選擇「開啟目錄」 。不同版本的措詞可能略有不同。這將開啟目前活動的設定檔資料夾。向上導航兩級,找到包含 `<path>`Profiles和`<path>` 的 Thunderbird 資料夾profiles.ini。在典型的 Windows 系統中,它%APPDATA%\Thunderbird通常位於使用者的漫遊 AppData 資料夾下。
使用位於不同實體磁碟或受保護的網路備份位置的目標位置。在本例中,請E:\Thunderbird-Backups在排程任務運行時建立並保持該磁碟機的連線。在同一故障磁碟上建立第二個資料夾雖然方便,但如果磁碟遺失,它就不是單獨的備份。如果您的設定檔儲存在預設 Thunderbird 資料夾之外,請記下其自訂位置,並調整腳本以複製該路徑。
Thunderbird 資料夾包含設定檔目錄和 profiles.ini 文件,這有助於 Thunderbird 在復原過程中找到設定檔。
步驟 2:建立 PowerShell 備份腳本
Mozilla 建議在複製設定檔之前關閉 Thunderbird。如果在程式正在變更郵件資料庫或通訊錄時進行複製,可能會導致擷取的檔案處於不同的時間點。以下腳本會檢查 Thunderbird 進程是否正在執行,如果是,請跳過該進程,而不是強制關閉程式。它會建立一個帶有日期標記的快照,僅在複製成功後才寫入完成標記,並保留最新的 14 個已完成的快照。
首先建立C:\Scripts並E:\Thunderbird-Backups儲存以下內容C:\Scripts\Backup-Thunderbird.ps1。如果您的備份磁碟機使用不同的盤符,請變更目標位置。
$ErrorActionPreference = 'Stop'
$source = Join-Path $env:APPDATA 'Thunderbird'
$backupRoot = 'E:\Thunderbird-Backups'
$log = Join-Path $backupRoot 'backup.log'
if (-not (Test-Path -LiteralPath $source -PathType Container)) { throw "Source not found: $source" }
if (-not (Test-Path -LiteralPath $backupRoot -PathType Container)) { throw "Backup drive is unavailable: $backupRoot" }
if (Get-Process -Name thunderbird -ErrorAction SilentlyContinue) {
"$(Get-Date -Format o) Skipped: Thunderbird is still running." | Add-Content -LiteralPath $log
exit 0
}
$stamp = Get-Date -Format 'yyyyMMdd-HHmmss'
$destination = Join-Path $backupRoot "tb-$stamp"
New-Item -ItemType Directory -Path $destination | Out-Null
& robocopy $source $destination /E /COPY:DAT /DCOPY:DAT /R:2 /W:5 /XJ /XD 'Crash Reports' 'Pending Pings' /NFL /NDL /NP
$copyCode = $LASTEXITCODE
if ($copyCode -ge 8) { throw "Robocopy failed with exit code $copyCode" }
'Completed' | Set-Content -LiteralPath (Join-Path $destination '_backup-complete.txt')
"$(Get-Date -Format o) Completed: $destination" | Add-Content -LiteralPath $log
Get-ChildItem -LiteralPath $backupRoot -Directory -Filter 'tb-*' |
Where-Object { Test-Path -LiteralPath (Join-Path $_.FullName '_backup-complete.txt') } |
Sort-Object LastWriteTime -Descending |
Select-Object -Skip 14 |
Remove-Item -Recurse -Force
在檔案總管中右鍵點選腳本並選擇「使用 PowerShell 執行」 來執行一次,或直接從 PowerShell 視窗執行。請先關閉 Thunderbird。確認新tb-YYYYMMDD-HHMMSS資料夾出現,並且包含 ` <profile_name>` _backup-complete.txt、profiles.ini`<profile_name>` 和預期的設定檔目錄。如果複製失敗,請檢查目標磁碟機是否已連線且有足夠的可用空間。該腳本不會加密備份;如果設定檔包含敏感郵件或已儲存的憑證,請使用加密磁碟或加密備份目標。
腳本會在複製設定檔之前檢查 Thunderbird 是否已關閉,並記錄跳過或完成的執行情況。
步驟 3:使用任務排程程式安排腳本執行
開啟 Windows 工作排程程序,選擇「建立基本任務」 。將其命名為「Thunderbird 設定檔備份」 。選擇一個您可能不在 Thunderbird 的時間段作為每日觸發時間,例如凌晨 2:00。選擇「啟動程序」 ,輸入powershell.exeThunderbird 作為程序,並新增以下參數:
-NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\Backup-Thunderbird.ps1"
嚮導完成後,開啟任務屬性。在「觸發器」 標籤中,編輯每日觸發器,並將其設定為每小時重複一次,持續一天。這樣,即使 Thunderbird 關閉,腳本也能再次運行,而無需等到第二天。在「設定」 標籤中,啟用「錯過計畫啟動時間後儘快執行任務」選項,並阻止在前一個執行個體仍在執行時啟動新執行個體。使用與備份使用者設定檔相同的 Windows 使用者帳戶執行此任務,並確保備份磁碟機可用。如果電腦已關機或使用者未登錄,則僅針對該互動式帳戶配置的任務可能無法如預期運作。
任務規劃程式也可以透過 PowerShell 進行配置,但圖形化精靈可以更方便地查看操作和重複週期。微軟在 ScheduledTasks 模組中記錄了每日和重複觸發器。關鍵結果是一樣的:任務應該呼叫腳本,而不是 Thunderbird 本身,而其歷史記錄應該顯示在預期時間進行的嘗試。
任務排程器會在定期觸發時執行 PowerShell 備份腳本;使用任務記錄來查看每次執行情況。
如何判斷備份是否正常運作?
快照已完成。 tb-*關閉 Thunderbird 後,目標位置應包含一個帶有完成標記的、標有日期的新目錄。日誌解釋了未完成的運行。 標記為「已跳過」的行表示任務檢查時 Thunderbird 處於開啟狀態。請關閉 Thunderbird,並等待稍後的每小時運行。快照包含預期設定檔。 請檢查profiles.ini您指定的設定檔資料夾、郵件資料夾或其他預期資料。檔案大小因帳戶和同步設定而異。任務規劃程式會顯示最近的活動。 請查看任務的「上次運行時間」、「上次運行結果」和「記錄」標籤。任務成功啟動並不能證明複製已完成;還應檢查標記和日誌。
在依賴常規方法之前,請先進行恢復測試。使用單獨的 Windows 帳戶或測試計算機,關閉 Thunderbird,然後按照 Mozilla 的設定檔匯入或還原說明還原已複製的設定檔。確認本地郵件和通訊錄均已顯示。切勿透過覆蓋您日常使用的電腦上唯一可用的設定檔來進行測試。
什麼情況下應該使用其他備份方法?
此腳本是一個簡單的定時複製腳本,用於將 Windows 使用者設定檔複製到目標磁碟機。如果 Thunderbird 一直保持開啟狀態,其檢查功能可能會跳過每次執行;請選擇一個固定的時間關閉 Thunderbird,或使用專為安全備份應用程式資料而設計的備份軟體。如果使用者設定檔非常大,請規劃 14 個完整快照的儲存空間,或根據所需的歷史記錄量變更保留策略和計畫。 Mozilla 內建的使用者設定檔匯出工具便於一次匯出為 ZIP 文件,但其目前記錄的限制為 2 GB,因此並不適用於所有大型使用者設定檔或無人值守的定期備份任務。
對於 macOS 和 Linux,操作原則相同:使用 Thunderbird 的故障排除頁面識別當前活動的設定文件,僅在 Thunderbird 關閉後複製,並使用作業系統的排程任務程式安排複製操作。預設資料位置因平台而異,Snap、Flatpak、便攜式版本和自訂設定檔安裝可能會使用不同的路徑。請勿將正在運行的 Thunderbird 設定檔指向同步的雲端資料夾,或在多台電腦上同時開啟它。 Mozilla 警告稱,透過雲端儲存或檔案共享同時存取可能會損壞設定檔資料。請改為上傳已完成並關閉的快照作為備份,並使用加密保護它們。
如需最新說明,請參閱 Mozilla 的Thunderbird 設定檔位置和備份指南 、設定檔匯出和匯入指南 以及IMAP 同步指南 。 Microsoft 的任務規劃程式觸發器文件 解釋了每日和重複排程任務的設定。選單名稱、設定檔路徑和排程程式設定可能會因 Thunderbird 版本或安裝類型而異,因此請確認您要備份的電腦上的活動設定檔。