
Ich habe ein Backup-Skript für MySQL, das zuvor problemlos mit CRON ausgeführt wurde. Ich bin auf die Verwendung des systemd-Timers umgestiegen. Das Skript beginnt mit dem Löschen der Dateien der vorherigen Wochen vor dem Kopieren mit diesem Befehl:
find /home/NAS2/$SRVER/backups/$_DAY -type f -exec rm {} \;
Was ich im Nachrichtenprotokoll bekomme, ist Folgendes:
percona_backup: rm: cannot remove ‘/home/NAS2/o71/backups/Monday/mysql/proc.ibd’: No such file or directory
SELinux ist auf „erzwungen“ eingestellt. Ich sollte erwähnen, dass es 3 Server gibt, auf denen eine Variante desselben Skripts läuft, nur 2 schlagen mit diesem Fehler fehl. Alles läuft auf diesen einen Befehl hinaus.
Warum sollte dies also als CRON funktionieren, aber mit dem systemd-Timer fehlschlagen? Warum sollte es auf einem funktionieren, aber derselbe Befehl auf zwei anderen Servern fehlschlagen?
Antwort1
Wenn es Ihnen nichts ausmacht, dass bereits entfernte Dateien nicht entfernt werden, können Sie die --force
Option hinzufügen rm
. Aus den man rm
Dokumenten:
nicht vorhandene Dateien und Argumente ignorieren, niemals nachfragen