용량 확인시, df와 du 명령어 사용시 용량이 다르게 표출될 경우
df 명령의 결과가 du 명령 결과가 다르게 표출되는 경우가 발생 할 경우 먼저 의심해봐야 할 것은
특정 프로세스가 file descriptor를 열고, file descriptor가 가리키는 파일이 지워지고
그 프로세스가 여전희 file descripor를 열어 놓고 계속해서 write를 하고 있기 때문입니다.
위 상황에서 확인할 수 있는 명령어는 다음과 같습니다.
LSOF : 'List Open File' 의 약자로 해당 System에서 구동되고 있는 프로세스들에 의해서 알려진 파일들을 확인 할 수 있는 명령어 이다. 시스템의 의심스러운 프로세스에 대한 확인이 용의하여 많이 이용된다.
>lsof
위와 같이 사용하면 모든 파일 중에서 실행중인 프로세스가 잡고 있는 파일을 보여 줍니다.
만약 /home 파티션이 100% 사용 중이라 하면,
>lsof /home
위와 같이 사용하면 /home 파티션에 관련된 정보만 보여 줍니다.
각 컬럼 정보는 다음과 같습니다.
컬럼 |
설명 |
Command |
프로세스와 관련된 command 명 |
PID PPID PGRP |
Porcess Identification number |
Parent Process IDentification numer (해당 프로세스의 부모 프로세스 ID) |
|
Process Group IDentification number (해당 프로세스와 고나련된 프로세스 그룹 ID) |
|
USER |
해당 프로세스를 소유한 사용자 ID 또는 login name |
FD |
File Descriptor number ex) cwd : current working directory r : read access / w : write access / u: read and write access |
TYPE |
해당 파일과 관련된 노드 타입 ex) inet : Internet domain socket |
DEVICE |
device number |
SIZE SIZE/OFF OFFSET |
file 이나 file offset의 사이즈 |
INODE NODE-ID | local file의 node nuber 또는 Internet protocol type 또는 서버 호스트의 NFS file의 inode number |
NAME | 해당 파일이 소속된 mount poit나 파일 시스템의 이름 |
>lsof -p PID값
위와 같이 사용하면, 해당 프로세스에 대한 정보를 확인할 수 있다.
>kill -0 PID 값
위와 같이 확인하면 df 결과가 정상으로 돌아 옵니다.
참조 자료 :
http://unabated.tistory.com/435
http://greenfinger.tistory.com/180