본문 바로가기
Operating System/Linux & Unix

[LINUX] df 와 du의 용량이 다른 경우

by 이미존재 2022. 10. 6.
반응형

■ 디렉토리의 실제 사용 용량과 df 명령 또는 os에서 인식하는 사용량이 다른 경우

삭제 또는 종료가 비정상적으로 이루어져 프로세스 상에서 아직 사용하고 있어 완전 삭제 또는 종료가 되지 않는 경우 발생

 

▶ lsof 명령을 이용한 상태 점검

 

]# lsof | grep deleted

 

]# lsof | grep delete | grep 750 (PID)

java        750      root    1w      REG                8,3 33488616351    4456468 /wologs/maillog/mail.log (deleted)

java        750      root    2w      REG                8,3 33488616351    4456468 /wologs/maillog/mail.log (deleted)

java        750      root   66r      REG                8,2        6514    3422132 /usr/local/wiseone/v3.3/apps/mail-engine/work/wiseone-mail-engine-1490867188838/SAR-INF/lib/cornerstone-datasources-api-2.1.jar (deleted)

java        750      root   67r      REG                8,2      121757    3422097 /usr/local/wiseone/v3.3/apps/mail-engine/work/wiseone-mail-engine-1490867188838/SAR-INF/lib/commons-dbcp-1.2.2.jar (deleted)

 

/proc/PID/fd  deleted 파일이 아직 남아 있음을 확인   있다

 

]# ls -l /proc/750/fd | grep mail.log

l-wx------ 1 root root 64 Sep 12 18:00 1 -> /wologs/maillog/mail.log (deleted)

l-wx------ 1 root root 64 Sep 12 18:00 2 -> /wologs/maillog/mail.log (deleted)

[root@scigw ~]#

 

 용량 회수 방법

1. 서버 재기동

  :가장 효과적인 방법이며 가장 권장하는 방법으로 모든 프로세가 초기화 된다

 

2. 해당 프로세스 종료

  : 방법 1) kill -9 PID

  : 방법 2) 프로세스 종료 스크립트

 

3. /proc/PID/fd/해당 파일 초기화

 

truncate it by command

 

no.1

]# :> /proc/750/fd/1

]# :> /proc/750/fd/2

 

no. 2

]# > /proc/750/fd/1  => 끝에 숫자는 해당 파일의 시간 뒤에 있는 번호 

]# > /proc/750/fd/2

 

no. 3

]# cat /dev/null > /proc/750/fd/1

728x90

댓글