我有 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
:
忽略不存在的文件和参数,从不提示