find gera saída apenas quando executado como usuário regular, não raiz

0

Estou tendo alguns problemas com um comando que parece funcionar apenas quando executado como um usuário comum:

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

Se eu usar o comando como um usuário comum, obtenho erros de permissão no log. Quando eu tiver root , o comando não é anexado ao meu log. Este é um dos comandos que estão em execução no meu cron.hourly .

Isso significa que ele será registrado apenas se eu receber erros? Há algo que eu possa mudar para que uma exclusão bem-sucedida apareça no meu registro também?

    
por Rickert 29.05.2018 / 15:53

1 resposta

0

tee -a doesn't do anything unless I run it as regular user, then it gives me a ton of permission denied errors in my log

Seu comando parece bem. Ele simplesmente não gera saída porque -delete suprime a saída -print padrão de find ; e quando rodando como root , ele não atinge permission denied .

Se você deseja registrar os arquivos sendo excluídos, use -print explicitamente:

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

Observação -delete -print é um pouco diferente de -print -delete . O primeiro será impresso somente se a remoção for bem-sucedida; este último será impresso independentemente. Em um caso de -delete malsucedido, você recebe uma mensagem para strerr que também registra, portanto, -delete -print deve ser bom para você.

    
por 29.05.2018 / 16:20

Tags