O rm -R
realmente excluirá todos os arquivos (se houver permissões suficientes).
Se você quiser deixar apenas os arquivos abertos no momento, você pode verificar com lsof +D /srv/log/prod/dms/
: ele listará todos os arquivos localizados em /srv/log/prod/dms/
e que estão atualmente abertos.
Tenha cuidado, para roteirizar isso, você deve ter certeza de que seu daemon mantém seus manipuladores de arquivos abertos (quer dizer, certifique-se de que ele não os abra somente quando precisar escrever nele ...).
Então, depois do seu tar
, você pode escrever algo assim:
for f in $( find /srv/log/prod/dms/espis/documentum/log -type f -print ) ; do
lsof +D /srv/log/prod/dms/espis/documentum/log | grep -w $f\$ >/dev/null
if [ $? -eq 1 ] ; then
echo "Delete $f"
else
echo "Keep $f"
fi
done
EDIT: É claro que, se o seu daemon operar a rotação de logs, seria mais fácil excluir os arquivos de log anteriores a n dias com algo como find /srv/log/prod/dms/espis/documentum/log -type f -mtime +99 -exec rm -f {} \;
(aqui -mtime +99
significa "não modificado desde 99 dias")