![사용하지 않는 파일을 tar로 삭제하고 삭제하세요.](https://linux55.com/image/5858/%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20tar%EB%A1%9C%20%EC%82%AD%EC%A0%9C%ED%95%98%EA%B3%A0%20%EC%82%AD%EC%A0%9C%ED%95%98%EC%84%B8%EC%9A%94..png)
하위 폴더와 세션 로그가 포함된 폴더가 있습니다. 파일을 사용하지 않고 이 폴더를 압축한 다음 삭제하려면 몇 가지 명령이나 스크립트가 필요합니다. 이 구조를 가지고 있지만 이로 인해 파일을 처리해야 하는지 여부가 확실하지 않습니다.
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일 이후 수정되지 않음"을 의미함)