회사에서 Linux를 사용한다...
서버 문제 디버깅을 위한 상위 10개 Linux 명령어
갑작스럽게 장애가 발생하였을때 무엇인 문제인지 확인할 수 있는 명령어들을 정리하려고한다.
⚽디스크
df
마운트된 파일 시스템의 디스크 사용량을 확인할 수 있는 명령어 입니다.
Application 에서 가용량이 적은 파일 시스템을 사용하도록 설정된 경우 Disk 공간 부족으로
서버 장애가 발생할 수 있는데 이러한 케이스를 확인할 수 있는 명령어이다.
Ex) 예시 파일
du
특정 경로에 대해 얼마나 많은 디스크를 사용하고 있는지 확인할 수 있는 명령어입니다.
어느 경로에 데이터가 많이 쌓여있는지, 불필요한 데이터가 쌓여있거나 해당 경로에 데이터를 쌓는 Application 에 문제가 없는지 등을 확인할 수 있는 명령어 입니다.
Ex) 예시 파일
⚽네티워크
tcpdump
통신이 정상적으로 되지 않을 경우 이게 client 문제인지 server 문제인지 혹은 방화벽 이슈인지를 판단하기가 쉽지 않습니다.
이때 전송 및 수신되는 네트워트 패킷을 분석하여 판단할 수 있도록 도와주는 명령어가 tcpdump 입니다.
dig/ host/ nslookup
Applicaion 에서 target server 와 통신하기 위해 사용하는 DNS 주소가 정상적인지를 확인할 수 있는 명령어 입니다.
서버에서 해당 DNS 로 주소를 조회할 수 있는지 , 혹은 DNS 가 정상적으로 구성되어있는지 등을 확인할 수 있습니다.
Ex) dig 예시 파일
telnet/ nc
Applicaion Process 가 시스템에 호출 혹은 수신한 내용이 캡쳐되어 기록되는데 이러한 내용을 확인할 수 있는 명령어 입니다.
간혹 Applicaion OS 의 개입으로 비정상 종료가 되었거나 Applicaion OS 에 이슈가 될만한 행동을 했는지를 확인할 수 있습니다.
Ex) telnet 예시 파일
Ex) nc 예시 파일
ps aux/ ls -l /proc/PID/fd
Applicaion Process 에서 현재 점유하고 있는 Open File Count(혹은 File Descriptor)를 확인할 수 있는 명령어입니다.
OS 에서 제한하고 있는 Open File Count 수를 넘어갈 경우 네트워크 통신이나 파일 생성등과 같은 동작이 안될 수 있는데 이런 이슈를 확인할 수 있는 명령어입니다.
⚽Applicaion
curl
Http 통신 및 응답 내용에 문제가 없는지 -v 옵션을 통해 상세히 파악할 수 있는 명령어이다.