하위 폴더와 세션 로그가 포함된 폴더가 있습니다. 파일을 사용하지 않고 이 폴더를 압축한 다음 삭제하려면 몇 가지 명령이나 스크립트가 필요합니다. 이 구조를 가지고 있지만 이로 인해 파일을 처리해야 하는지 여부가 확실하지 않습니다.
tar -zcvf /srv/log/prod/dms/espis/documentum/log/00029392-$(date +%F).tar /srv/log/prod/dms/espis/documentum/log/0002939
cd /srv/log/prod/dms/espis/documentum/log/00029396
rm -R *
어떤 아이디어가 있나요?
답변1
모든 파일은 실제로 rm -R
삭제됩니다(충분한 권한이 부여된 경우). 현재 열려 있는 파일만 유지하려면 다음을 사용하여 확인할 수 있습니다. 현재 열려 있는 lsof +D /srv/log/prod/dms/
모든 파일이 나열됩니다./srv/log/prod/dms/
조심하세요. 스크립트를 작성하려면 데몬이 파일 핸들러를 열어두는지 확인해야 합니다(즉, 쓰기가 필요할 때만 파일 핸들러를 열어야 한다는 뜻입니다...).
따라서 you 후에 tar
다음과 같은 스크립트를 작성할 수 있습니다.
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
편집하다:물론 데몬이 로그 회전을 실행하는 경우 다음보다 오래된 로그 파일을 삭제하는 것이 더 쉬울 것입니다.N일 및 이와 유사한 것 find /srv/log/prod/dms/espis/documentum/log -type f -mtime +99 -exec rm -f {} \;
(여기서는 -mtime +99
"99일 이후 수정되지 않음"을 의미함)