如何透過命令列清除 ownCloud 檔案版本歷史記錄

ownCloud 的命令列可以透過刪除檔案版本來釋放儲存空間,但正確的命令取決於您對「清除」的定義。您可以讓 ownCloud 僅對違反已配置保留策略的版本進行過期處理,也可以刪除一個或多個帳戶的所有已儲存版本,或刪除系統範圍內的所有版本。這些選項在可逆性和範圍方面差異很大。首先,請確認您的伺服器是ownCloud Server還是ownCloud Infinite Scale;它們使用不同的命令列工具。

以下命令基於目前的 ownCloud Server 10.16 和 11.0 管理文件以及 Infinite Scale 8.2 指南,於 2026 年 10 月 6 日檢查。路徑、服務名稱和帳戶 ID 因安裝而異,因此在生產伺服器上執行範例之前,請進行相應的調整。

選擇符合您目標的清理方法

方法它移除了什麼最佳匹配主要權衡
versions:expire在 ownCloud 伺服器上根據配置的保留規則,版本被視為已過期日常維護和配額控制它會保留仍在策略保護範圍內的版本,因此可能無法像完全清除那樣立即回收那麼多空間。
versions:cleanup USER_ID在 ownCloud 伺服器上指定帳戶的所有已儲存版本刪除特定帳戶的歷史記錄該用戶將失去恢復早期版本(包括已發布版本)的能力。
versions:cleanup沒有使用者 ID所有 ownCloud Server 使用者的所有已儲存版本有計劃的、全組織範圍的重置這是一項廣泛的破壞性行動,而且已記錄的命令沒有預覽選項。
ocis revisions purge無限尺度預設情況下,修訂範圍涵蓋所有空間;或者,在指定時,修訂範圍限定在較小的資源範圍內。需要進行版本清理的 Infinite Scale 部署它的試運行行為和儲存路徑選項與 ownCloud Server 的occ命令不同。

對於週期性儲存管理,請先設定保留策略versions:expire。versions:cleanup僅當您明確想要立即刪除選定的歷史記錄時才使用此功能。

1. 確認您的 ownCloud 產品和命令位置

對於 ownCloud 伺服器,請連接到執行 PHP 應用程式的主機或容器,並切換到 ownCloud 安裝目錄,腳本就occ位於該目錄中。常見的 Linux 模式是以 Web 伺服器帳號執行指令,通常是使用 `--user`www-data或 `--user`指令wwwrun。

cd /var/www/owncloud
sudo -u www-data php occ status

請使用系統實際的安裝路徑和 Web 伺服器帳戶。occ以 root 使用者身分執行可能會導致文件擁有者錯誤,因此請使用文件中指定的服務帳戶。確認 Versions 應用程式files_versions已啟用;如果該應用程式已停用,版本命令將不可用,且在單一使用者維護模式下也無法使用。

在 ownCloud 目錄下的終端機中,以 www-data 使用者身分輸入 occ status 指令。
該occ status命令在版本清理之前檢查 ownCloud 伺服器的安裝情況。

如果 ownCloud Server 運行在 Docker 容器中,請在應用程式容器內執行命令。例如,在包含 Compose 配置的目錄中,部署可以使用 `<service_name>` 指令docker compose exec owncloud occ status;請將 `<service_name>` 替換owncloud為 Compose 檔案中的實際服務名稱。請勿使用occInfinite Scale 的範例。

2. 決定強制保留歷史記錄還是清除歷史記錄

當您需要基於策略的清理時,請使用過期時間。

versions:expireversions_retention_obligation根據設定評估版本config.php。如果沒有指定使用者 ID,則適用於所有使用者;您也可以列出一個或多個使用者 ID。對於單一帳戶,命令如下:

sudo -u www-data php occ versions:expire alice

請替換為真實的帳戶 ID,而不是使用者的顯示名稱或電子郵件地址,除非您的安裝中就是這樣標識帳戶的。若要對所有帳戶執行過期流程,請省略alice此選項。此選項會遵循已配置的保留規則:它不一定會刪除最近的版本或其他已保留的版本。

終端機顯示針對 alice 帳號的 ownCloud versions:expire 指令
此versions:expire命令將配置的保留策略套用至指定的帳戶。

ownCloud 伺服器文件將auto預設保留模式描述為基於時間的替代方案。在執行過期操作之前,請務必仔細審查您的策略,尤其是在您的組織有法律或營運方面的保留要求時。對於正常的週期性過期,ownCloud 會將其作為後台作業運行。管理手冊建議使用系統 cron 來運行後台作業;手動觸發過期操作適用於計劃內的維護運行,但不應將其作為正確配置的調度程序的臨時替代方案。

如果您打算刪除範圍內的所有版本,請使用清理功能。

對於單一帳戶,運行:

sudo -u www-data php occ versions:cleanup alice

多個帳戶的ID請用空格分隔:

sudo -u www-data php occ versions:cleanup alice bob

如果沒有指定 ID,則命令將刪除所有使用者的所有版本化檔案:

sudo -u www-data php occ versions:cleanup

終端機顯示針對 alice 帳號的 ownCloud versions:cleanup 指令
傳遞帳號 ID 可將完整歷史記錄清理範圍限定於該使用者。

如果版本資訊可能用於恢復,請先進行備份,並在執行命令前確認帳戶 ID。文件中記錄的命令會刪除files_versions其作用範圍內的版本資料及其關聯資料夾。它還會刪除那些原本會保留到超出正常保留期限的已發布版本。 ownCloud Server 的文件中沒有支援「僅預覽」標誌versions:cleanup,因此拼字錯誤或遺漏的 ID 可能會造成比預期更大的影響。

3. 了解 ownCloud Server 和 Infinite Scale 之間的差異

ownCloud Infinite Scale (oCIS) 不使用 PHPocc versions:cleanup指令。其管理文件說明如何使用該指令清理版本ocis revisions purge。此指令預設執行空運行,報告將要移除的內容,但不會實際刪除版本。需要配置使用者儲存路徑;此範例使用佔位符路徑:

ocis revisions purge -p /base/path/storage/users

檢查試運行結果並驗證儲存路徑是否正確。若要實際刪除該次運行列出的版本,請明確停用試運行:

ocis revisions purge --dry-run=false -p /base/path/storage/users

預設情況下,Infinite Scale 指令會處理所有空間中的版本。--resource-id如果您擁有正確的 ID,可以使用其選項將操作範圍縮小到特定空間或單一檔案。如果路徑或範圍不確定,請在試運行階段停止操作,並使用部署配置進行確認。文件指出,在大空間上,使用其他通配符模式可能會增加 CPU 和記憶體使用量;除非您已確定需要更改,否則請保留預設設定。

終端機顯示 ownCloud Server versions:cleanup 命令,但沒有帳戶 ID,表示這是一次全域清除操作。
如果沒有使用者 ID,versions:cleanup則會針對所有 ownCloud Server 使用者。

4. 在不刪除更多資料的情況下驗證結果

伺服器清理完成後,請在 Web 介面中檢查幾個具有代表性的帳戶,並確認每個檔案的版本歷史記錄中不再顯示舊條目。檢查命令輸出,查看已處理的使用者。對於 Infinite Scale,請將清除結果與試運行輸出進行比較,並檢查命令的完成狀態。然後,檢查與您的部署相關的儲存層(ownCloud 配額報告、本機檔案系統或已配置的物件儲存)的使用情況。

請勿手動刪除檔案以files_versions「完成」清除操作。 ownCloud 支援的命令會將版本清理與應用程式元資料協調;刪除應用程式後端儲存物件可能會導致記錄不一致。此外,如果您的儲存後端具有快照、複製或延遲刪除機制,則回收的伺服器磁碟空間可能與已刪除的版本數量不同。這部分取決於後端,必須與後端管理員或提供者確認。

你應該選擇哪一種方案?

  • 選擇versions:expire「當目標是在現有保留規則下進行持續配額管理」選項。
  • versions:cleanup USER_ID當您需要刪除已知帳戶的所有歷史記錄並且已接受遺失還原點時,請選擇範圍刪除。
  • versions:cleanup僅在備份和範圍審查後,有意進行系統範圍重設時才選擇全域重設。
  • 僅在 oCIS 上選擇 Infinite Scale 清除工作流程,並在設定之前查看其預設的試運行--dry-run=false。

官方參考資料:ownCloud Server OCC 指令參考、ownCloud Server 檔案版本控制與保留、ownCloud Server 後台作業與Infinite Scale 修訂清理。

版本說明:命令行為和範例已於 2026 年 10 月 6 日根據 ownCloud Server 10.16/11.0 和 Infinite Scale 8.2 文件進行了檢查。在執行破壞性操作之前,請先檢查您已安裝版本的相應手冊。

留下評論

10 款最佳 Ping 掃描工具,協助您尋找網路上的設備

10 款最佳 Ping 掃描工具,協助您尋找網路上的設備

比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。

用於追蹤效能的 6 款最佳網路管理工具

用於追蹤效能的 6 款最佳網路管理工具

比較六款網路管理工具的效能監控功能,包括 SNMP 覆蓋範圍、映射、警報、部署模型和成本權衡。

適用於 Windows、iOS 和 Android 的最佳 Wi-Fi 分析器

適用於 Windows、iOS 和 Android 的最佳 Wi-Fi 分析器

比較適用於 Windows、iPhone 和 Android 的 Wi-Fi 分析器,包括頻道擁塞、訊號覆蓋範圍、熱圖和網路故障排除工具。

Ping 監控:7 款免費開源的網路可用性工具

Ping 監控:7 款免費開源的網路可用性工具

比較七款免費開源的 ping 監視器,從完整的網路套件到專注於延遲探測的工具,選擇最適合可用性、丟包率和歷史記錄的工具。

網路中的服務品質 (QoS):服務品質的角色和工作原理

網路中的服務品質 (QoS):服務品質的角色和工作原理

了解 QoS 在網路中的意義,DSCP 標記和流量佇列如何對語音、視訊和業務應用程式進行優先排序,以及 QoS 無法解決的問題。

最佳SFTP伺服器軟體,實現安全檔案傳輸

最佳SFTP伺服器軟體,實現安全檔案傳輸

比較適用於 Windows 和 Linux 的可靠 SFTP 伺服器軟體,包括 OpenSSH、Bitvise、SolarWinds 和 SFTPGo。尋找最適合您的安全性和文件傳輸需求的軟體。

適用於網路團隊的 7 款最佳 IP 位址管理工具

適用於網路團隊的 7 款最佳 IP 位址管理工具

比較七款 IP 位址管理工具,包括子網路發現、DNS 和 DHCP 協調、網路清單和開源 IPAM。

網路監控最佳實務:監控哪些內容以及使用哪些工具

網路監控最佳實務:監控哪些內容以及使用哪些工具

建置實用的網路監控,提供清晰的設備覆蓋範圍、有用的效能指標、可操作的警報,並對 SolarWinds NPM、PRTG 和 OpManager 進行比較。

十大最佳網路掃描工具,幫助您發現裝置和 IP 位址

十大最佳網路掃描工具,幫助您發現裝置和 IP 位址

比較網路掃描工具,以實現快速設備發現、跨平台 IP 掃描和企業級 IPAM,並指導如何將每個選項與您的網路相符。

如何使用 Nmap 進行路由追蹤並讀取網路路徑

如何使用 Nmap 進行路由追蹤並讀取網路路徑

使用 Nmap 的 --traceroute 選項將躍點對應到授權主機,了解躍點和 RTT 輸出,並在不進行過度掃描的情況下排查缺失的回應。