LINUX/명령어 사용법

용량 확인시, df와 du 명령어 사용시 용량이 다르게 표출될 경우

lahuman 2014. 9. 19. 15:36
728x90

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://spzt.org/xe/blog/758

http://unabated.tistory.com/435

http://greenfinger.tistory.com/180


728x90