使用 Systemd 定時器可靠地執行 ownCloud 後台作業
將按需作業運行替換為 systemd 定時器,該定時器每 15 分鐘執行一次 ownCloud 支援的 occ system:cron 命令。
對於一台無頭 Debian 12 伺服器,請安裝unattended-upgrades並啟用 APT 的每日軟體包清單刷新和無人值守升級設置,並保留預設的安全源允許清單。然後透過 SSH 驗證 systemd 計時器和日誌。這樣可以自動更新符合條件的軟體包;但它不會執行 Debian 的主要版本升級,也不能保證每個應用程式都不需要後續更新。

使用有權使用該功能的帳號登入sudo。安裝前,請檢查伺服器版本並更新其軟體包索引:
cat /etc/debian_version
sudo apt update
sudo apt install unattended-upgrades
此流程針對 Debian 12 (Bookworm),使用其標準的 APT 軟體來源。請在接受軟體包計劃之前仔細檢查。如果 APT 報告軟體來源、DNS、磁碟空間或依賴關係錯誤,請先解決這些問題;無人值守操作無法修復損壞的軟體包來源或不健康的檔案系統。
在本地指定檔案中設定 APT 的定期選項。這樣可以實現每日軟體包清單刷新和無人值守升級運行:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades

輸入並儲存以下兩行程式碼:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
在 Nano 編輯器中,按下Ctrl+OEnter 鍵,然後輸入 `\n` Ctrl+X。該值1表示每天更新。 APT 的unattended-upgrades軟體套件設定控制著可以安裝哪些歸檔來源。在標準的 Debian 12 系統中,/etc/apt/apt.conf.d/50unattended-upgrades最初不要更改此設定;其預設允許清單旨在選擇 Debian 安全性更新和相關的已配置 Debian 更新。不要為了讓狀態輸出看起來更頻繁而新增第三方儲存庫或整個 Bookworm 倉庫。如果您有意擴大允許列表,請仔細檢查特定的儲存庫,進行測試,並像對待任何其他生產環境變更一樣監控服務。
對於遠端管理的伺服器,請檢查下列位置的重新啟動策略50unattended-upgrades:
grep -n 'Automatic-Reboot' /etc/apt/apt.conf.d/50unattended-upgrades
除非您已製定服務中斷計劃、檢查應用程式恢復方案,並擁有可靠的帶外或控制台恢復路徑,否則請勿啟用自動重新啟動。 Debian 安全性更新可能會安裝需要重新啟動才能生效的新核心或函式庫,但無人值守升級並不能取代重啟策略或值班計畫。停用自動重啟後,請安排定期維護窗口,並在更新後檢查是否需要重新啟動。

透過 SSH 運行模擬。此--dry-run標誌不會安裝軟體包,但--debug會在無人值守升級日誌中提供更多詳細資訊:
sudo unattended-upgrade --dry-run --debug
讀取輸出結果,查看允許的來源和建議的軟體包操作。如果出現「沒有要升級的軟體包」的訊息,則表示沒有待處理的合格軟體包,這可能是正常結果;但這並不意味著計時器稍後會運行。如果允許的來源為空或意外缺少候選來源,請50unattended-upgrades在變更之前檢查發行版的 APT 來源和模式。 Bookworm 手冊將此指令記錄為類比操作,而非實際安裝。
APT 使用 systemd 定時器單元進行日常工作。請檢查定時器和升級服務:
systemctl status apt-daily.timer apt-daily-upgrade.timer
systemctl list-timers 'apt-daily*'
systemctl status apt-daily-upgrade.service
定時器應已載入並處於活動狀態,清單中應顯示其下次計畫運行時間。如果定時器已安裝但未激活,請啟動它們並啟用它們以便在以後的啟動中生效:
sudo systemctl enable --now apt-daily.timer apt-daily-upgrade.timer
由於服務是一次性任務,因此在兩次計劃運行之間可能會處於非活動狀態;請檢查其最後運行結果,而不是期望它一直運行。在計劃運行視窗結束後,請查看軟體包日誌和 systemd 日誌:

sudo tail -n 50 /var/log/unattended-upgrades/unattended-upgrades.log
sudo tail -n 50 /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
sudo journalctl -u apt-daily-upgrade.service --since "7 days ago"
查看運行是否已完成、允許的來源以及軟體包是否已安裝或是否有待安裝的軟體包。調查重複下載失敗、軟體包被保留或 dpkg 錯誤。手冊列出了這些日誌路徑,並解釋了 systemd 服務運行無人值守升級後端。
正常工作的配置意味著定時器已啟動、定期 APT 設定已啟用,且日誌顯示無人值守運行成功。但這並不能證明每個軟體倉庫中的每個軟體包都已更新,也不證明依賴重啟的修復程式已生效,或軟體包更改後服務保持健康。 Debian 的版本升級流程仍然是一個單獨規劃的操作;無人值守升級僅用於已配置來源中的軟體包更新。對於關鍵伺服器,應添加對失敗運行的監控、維護備份、在代表性環境中測試更改,並定義一個經人工審核的重啟視窗。
這些步驟遵循 Debian Bookworm無人升級手冊、Debian定期更新指南以及 Bookworm systemd.timer 手冊。 Bookworm 手冊中指出的 Debian 軟體包版本為 2.9.1+nmu3;軟體包版本可能會隨 Debian 更新而變更。
將按需作業運行替換為 systemd 定時器,該定時器每 15 分鐘執行一次 ownCloud 支援的 occ system:cron 命令。
透過 Apache、Nginx 或反向代理程式追蹤 WebDAV 請求,然後使用經過驗證的 PROPFIND 測試確認 ownCloud 同步功能正常。
透過設定其規範 URL 並從伺服器本身檢查 DNS、HTTPS 和反向代理路由,修復 Nextcloud 缺少出站位址警告的問題。
透過本機 Unix 套接字配置 APCu 和 Redis,以實現 Nextcloud 快取和檔案鎖定,並提供目前和舊版 Nextcloud 的步驟。
檢查 Nextcloud 的 cron 模式,修復其 systemd 服務和計時器,並驗證後台作業在啟動後以及每隔五分鐘運行一次。
啟用可靠的 Nextcloud 檔案鎖定,選擇適當的 Redis 或 Valkey 後端,並驗證警告是否清除,同時避免並發檔案變更的風險。
使用最新更新、HTTPS 和 HSTS、精確的反向代理信任以及針對公共伺服器的檢查,修復 Nextcloud 掃描中常見的錯誤。
為需要加密的儲存配置 Nextcloud SSE,保護加密金鑰,並在加密現有文件之前測量傳輸和 CPU 影響。
將 Nextcloud 的檔案搜尋連接到 Elasticsearch,索引文件內容,並選擇適合您的伺服器和安全需求的設定。
配置 Nextcloud 在規定的保留期後刪除已刪除的文件,可靠地安排後台作業,並避免執行清除所有使用者回收站的命令。