
我有 Mysql 的備份腳本,以前使用 CRON 運行沒有問題。我遷移到使用 systemd 計時器。該腳本首先使用此命令刪除複製前幾週的檔案;
find /home/NAS2/$SRVER/backups/$_DAY -type f -exec rm {} \;
我在訊息日誌中得到的是這樣的;
percona_backup: rm: cannot remove ‘/home/NAS2/o71/backups/Monday/mysql/proc.ibd’: No such file or directory
SELinux 設定為強制執行。我應該提到,有 3 個伺服器正在運行同一腳本的變體,只有 2 個伺服器因此錯誤而失敗。一切都歸結為這項命令。
那麼,為什麼它可以作為 CRON 工作,但使用 systemd 計時器失敗呢?為什麼它可以在 1 台伺服器上運行,但相同的命令在另外 2 台伺服器上失敗?
答案1
如果您不關心刪除已刪除的檔案失敗,那麼您可以將該--force
選項新增至rm
.來自文件man rm
:
忽略不存在的文件和參數,從不提示