前言¶
DSH 環境開發中,插件安裝或更新可能改變插件表,導致配置混亂。若環境損壞,回退是必要的。dsh-env-backup 插件在插件表變化時自動備份 ~/.dsh/profiles/web 目錄,通過輪轉命名和保留策略防止環境丟失。
插件定位¶
dsh-env-backup 是一個 DSH 環境自動備份插件,由 ikanger 維護。它解決的問題是:在插件安裝/更新導致 web 插件表變化時,自動備份 ~/.dsh/profiles/web 目錄,支持輪轉命名和保留策略自動清理。
核心功能¶
- 自動觸發:支持啓動時指紋比對、週期檢查、插件表事件和手動觸發。
- 輪轉命名:最新備份爲
web.latest_bak,舊備份數字時間戳。 - 保留策略:支持配置
retentionDays(保留天數)、maxBackups(最大備份數)和backupDir(備份目錄)。 - 設置頁集成:提供備份目錄、保留時長、立即備份和恢復指引的設置項。
- 精準清理:僅清理匹配
web.latest_bak或web.<12位時間戳>的備份目錄。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add github:<你的用戶名>/dsh-env-backup
安裝後需重啓 dsh 才能生效。
典型用法¶
環境恢復¶
若環境崩潰:
1. 停止 dsh。
2. 將備份目錄中的 web.latest_bak(或某個 web.YYYYMMDDHHMM)複製回 profiles/web。
3. 重新啓動 dsh。
配置備份策略¶
可在設置頁調整保留策略,配置會持久化到 ~/.dsh/web-backup.json。
注意事項¶
- 備份目錄默認爲
~/.dsh/profiles。 - 配置文件生成位置爲
~/.dsh/web-backup.json。 - 插件以 bundle 形式寫入 profile 的
dsh.profile.bundles。 web.latest_bak是插件表變化後生成的備份,若損壞請回退到web.YYYYMMDDHHMM。
結語¶
該插件通過自動化備份流程,降低了環境配置丟失的風險。