使用 Systemd 定時器可靠地執行 ownCloud 後台作業
將按需作業運行替換為 systemd 定時器,該定時器每 15 分鐘執行一次 ownCloud 支援的 occ system:cron 命令。
當zypper refreshSLES 系統傳回 HTTP 500 錯誤時,首先要確定是哪個儲存庫 URL 傳回的。 HTTP 500 表示處理請求的伺服器遇到了意外情況;回應伺服器可能是儲存庫主機、組織的 RMT 伺服器或 HTTP 代理。隔離故障儲存庫,並在清除本機元資料之前修復或報告該端點。強制重建快取無法修復仍回傳 500 錯誤的伺服器。
SUSE 目前的 SLES 15 SP7 管理和升級指南文件中記錄了儲存庫清單和刷新命令,包括zypper refresh -fdb重建本機儲存庫元資料的命令。但這些指南並未提及目前 SLES 範圍內的 HTTP 500 錯誤。實際的解決方法取決於該 URL 指向的是 SUSE 客戶中心、內部鏡像還是第三方儲存庫。
首先記錄儲存庫別名和 URL。在 SLES 系統上,運作:
zypper repos -u
此-u選項會顯示每個已配置儲存庫的來源。記下哪些項目已啟用並設定為刷新,然後比較失敗 URL 的主機名稱。如果某個第三方儲存庫失敗,而 SUSE 更新來源刷新成功,則應調查該儲存庫的擁有者。如果多個儲存庫指向相同內部主機且全部失敗,則共用映像、RMT 服務、反向代理或其上游連線更有可能是問題所在。

接下來,僅按別名刷新受影響的儲存庫:
sudo zypper refresh -f 'Vendor-App'
請替換Vendor-App為顯示的準確別名zypper repos -u。這樣可以避免螢幕上出現來自無關倉庫的重複錯誤,並為您提供一個重點明確的結果,以便與管理員分享。如果別名包含空格,請保留單引號。請保留故障的準確 URL 和時間戳,但在發送日誌或螢幕截圖之前,請刪除任何嵌入的使用者名稱、密碼、令牌或其他敏感資訊。

閱讀完整的 Zypper 錯誤訊息,並確定其中指定的元資料 URL,該 URL 通常是儲存庫repodata目錄下的一個檔案。如果無需憑證即可查詢該端點,請將其與 SLES 主機傳回的 HTTP 回應進行比較:
curl -sS -D - -o /dev/null --max-time 20 "$METADATA_URL"
設定METADATA_URL為故障的元資料 URL,但不要將憑證放在 URL 或命令列中。此指令會列印回應頭並丟棄回應正文。類似這樣的結果HTTP/1.1 500確認請求路徑中的某個伺服器回傳了錯誤;但它並不能證明錯誤是由來源伺服器還是中間伺服器產生的。 Curl 使用的身份驗證或代理設定可能與 Zypper 不同,因此請將此視為對比,而非最終的複現。如果儲存庫存取需要身份驗證,請使用貴組織認可的測試方法,而不是暴露憑證。

500 回應與本地元資料快取問題不同。它也不同於 DNS 故障、TLS 憑證錯誤、逾時以及驗證回應(例如 401 或 403)。這些訊息需要不同的檢查。請勿停用 TLS 驗證、將儲存庫變更為純 HTTP 或重複刪除快取來消除 500 錯誤。對於 HTTP 語義,RFC 9110 將 500 定義為阻止請求完成的意外伺服器狀況。
您可以使用 Zypper 或 YaST 檢查和變更儲存庫狀態。例如,文件中提供的zypper modifyrepo命令可以透過別名停用儲存庫,但這只是臨時的操作選擇,並非修復故障來源的根本方法。請避免隨意編輯產生的儲存庫 URL,尤其是在服務包遷移之後,因為產品儲存庫和更新儲存庫使用特定版本的路徑。
只有在伺服器或代理程式傳回有效回應後,才應重試所有已啟用的儲存庫:
sudo zypper refresh -f

如果終端現在有回應,但 Zypper 仍然報告本地儲存庫資料過時或不一致,SUSE 的 SLES 15 SP7 故障排除部分建議使用以下命令完成元資料刷新和資料庫重建:
sudo zypper refresh -fdb
這將強制下載原始元資料並重建 Zypper 的本機可解析資料庫。它適用於解決本地元資料問題;但無法解決持續出現的 500 回應。請勿將刷新儲存庫元資料與安裝更新混淆:僅在刷新成功完成後才執行常規的修補程式或更新命令。
zypper refresh -f 'ALIAS'首先對先前失敗的來源執行此操作,然後sudo zypper refresh -f對所有已啟用的儲存庫執行此操作。當受影響的儲存庫元資料下載成功且未出現 HTTP 500 錯誤,且 Zypper 完成且未發現任何失敗的已啟用來源時,即確認修復已成功。如果仍然有某個來源失敗,請保留完整的 URL、狀態碼、回應頭和時間,並將其提供給該端點的擁有者。
將按需作業運行替換為 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 在規定的保留期後刪除已刪除的文件,可靠地安排後台作業,並避免執行清除所有使用者回收站的命令。