find 仅以普通用户身份运行时才会生成输出,而不是 root 用户

find 仅以普通用户身份运行时才会生成输出,而不是 root 用户

我遇到了一些问题,该命令似乎只有以普通用户身份运行时才有效:

find /mnt/data* -mmin +119 -name '*.adsr' -type f -delete 2>&1 | tee -a /log/rsynclog.txt

如果我以普通用户身份使用该命令,我会在日志中收到权限错误。一旦我,root该命令就不会附加到我的日志中。这是在我的 中运行的命令之一cron.hourly

这是否意味着只有出现错误时才会记录?我可以更改哪些内容,以便成功删除的信息也显示在我的日志中?

答案1

tee -a除非我以普通用户身份运行它,否则它不会执行任何操作,然后它会在我的日志中显示大量权限被拒绝的错误

您的命令似乎没问题。它只是不生成输出,因为抑制了的-delete默认输出;并且当以 运行时,它不会命中任何。-printfindrootpermission denied

如果要记录被删除的文件,请-print明确使用:

find … -delete -print 2>&1 | tee -a …

注意-delete -print与 略有不同-print -delete。前者仅在删除成功时才会打印;而后者无论如何都会打印。如果不成功,-delete您会收到一条消息strerr,您也会将其记录下来,因此-delete -print对您来说应该没问题。

相关内容