Systemd タイマー スクリプトでコマンドの実行が失敗する

Systemd タイマー スクリプトでコマンドの実行が失敗する

以前は CRON を使用して問題なく実行されていた Mysql のバックアップ スクリプトがあります。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 台だけです。すべてはこの 1 つのコマンドに帰着します。

では、なぜこれは CRON としては機能するのに、systemd タイマーでは失敗するのでしょうか? 1 台のサーバーでは機能するのに、他の 2 台のサーバーでは同じコマンドが失敗するのはなぜでしょうか?

答え1

すでに削除されたファイルの削除に失敗しても問題ない場合は、--forceにオプションを追加できますrm。ドキュメントからman rm:

存在しないファイルと引数を無視し、プロンプトを表示しない

関連情報