사용하지 않는 파일을 tar로 삭제하고 삭제하세요.

사용하지 않는 파일을 tar로 삭제하고 삭제하세요.

하위 폴더와 세션 로그가 포함된 폴더가 있습니다. 파일을 사용하지 않고 이 폴더를 압축한 다음 삭제하려면 몇 가지 명령이나 스크립트가 필요합니다. 이 구조를 가지고 있지만 이로 인해 파일을 처리해야 하는지 여부가 확실하지 않습니다.

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일 이후 수정되지 않음"을 의미함)

관련 정보