
У меня есть скрипт резервного копирования для 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
документации:
игнорировать несуществующие файлы и аргументы, никогда не запрашивать