У меня есть некоторые проблемы с командой, которая работает только при обычном использовании:

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

Если я использую команду как обычный пользователь, я получаю ошибки разрешения в журнале. Как только я получаю root команда не добавляется в мой журнал. Это одна из команд, которые выполняются в моем cron.hourly .

Означает ли это, что он будет регистрироваться, только если я получу ошибки? Есть ли что-то, что я могу изменить, чтобы успешное удаление также отображалось в моем журнале?

1 ответ1

0

tee -a ничего не делает, если я не запускаю его как обычный пользователь, тогда он дает мне массу ошибок, в которых отказано в разрешении в моем журнале

Ваша команда кажется в порядке. Он просто не генерирует вывод, потому что -delete подавляет вывод -print по умолчанию для find ; и при запуске с root он не ударил ни одно permission denied .

Если вы хотите регистрировать удаляемые файлы, явно используйте -print :

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

Примечание -delete -print немного отличается от -print -delete . Первый будет печататься только в случае успешного удаления; последний будет печатать независимо. В случае неудачного -delete вы получите сообщение strerr которое вы также войдете , так что -delete -print должно подойти вам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .