본문 바로가기
IT base

linux 점검 관련 명령어

by 개폰지밥 2019. 1. 16.
반응형

회사에 입사해서 솔루션을 바로 개발할 수도 있지만 신입때는 보통 개발된 솔루션의 파악합니다.

예를들어 어떠한 정책을 이용해서 DB에 저장된것들을 암호화 하는 솔루션이 있다고 합시다.

 

가장 먼저 해야 할 것은 서버가 잘 동작하고 있는지 확인해야 합니다.

 

1. 서버 동작확인

1) 프로세스 확인

ps -ef | grep 프로세스명

 

잠깐) 프로세스란? 현재 실행중인 프로그램을 이야기 합니다.

명령어를 좀 더 자세히 살펴보면

 

* ps명령어

- ps: 현재 시스템에서 구동중인 프로세스의 목록을 보여주는 명령어이다.

- ps 명령어 옵션

 

옵션
설명
-f

상세한 정보 출력 (일반적으로 verbose 모드라 불리는 모드)
PPIDSTIME 등의 추가 정보 확인 가능
-e

시스템상의 모든 프로세스 정보 출력

 

    *  grep 명령어

- grep:grep 명령어는 하나 이상의 파일에서 문자패턴을 검색한다. 또한 패턴을 검색해 매칭 되는 결과를 화면으로 출력한다.

- 형식: grep option pattern filename

    - grep 명령어 옵션

-w 옵션을 제외하고 거의 대부분 egrep, fgrep 명령어에도 똑같이 적용된다.

옵션 설명
-i
검색 패턴 대소문자 무시
-l
매칭 되는 패턴이 있는 파일 이름 출력
-n
매칭 되는 줄 번호 표시
-v
검색 패턴을 제외하고 검색
-c 검색 패턴과 매칭 되는 줄 개수 출력
-w 단어 단위로 검색

 

메타 문자 용도
^ 줄의 시작 지정
$ 줄의 마지막 지정
. 한 문자 대치
* 아무것도 없거나 여러 문자 대치
[] 패턴 중 한 문자 대치
[^] 패턴 중 제외할 한 문자

 

ps -ef | grep 프로세스명의 명령어를 입력 한 다음에 확인해야할 것은

main과 watchdog 입니다.

잠깐) watchdog이란?

watchdog이란 main 프로세스가 잘 동작하고 있는지, 비정상 종료 시 서비스를 재 구동하는 역할을 합니다.

즉 ps -ef | grep 명령어로 정책서버가 잘 동작하는지 확인합니다. 잘 동작하지 않는다면 서비스가 되지 않고 있다는 뜻이니 큰일나겟죠..?

 

2) 의존성 확인

파일명을 참조 라이브러리를 잘 참조하고 있는지 확인 해야 합니다.

- ldd: 지정한 프로그램의 라이브러리 의존성을 확인할 때 사용하는 명령어이다.

- 형식: ldd [옵션] 파일명

ldd 파일명을 했을 때 not found가 뜬다면 확인해야 할 것으로는 크게

1) 설치 디렉토리 위치에 참조 라이브러리가 있는지

2) path 설정이 잘 되었는지 

위의 2가지를 확인해야 합니다.

만약 path이 잘 설정되지 않았다면 홈 디렉토리에 있는 .bash_profile을 수정해줘야 합니다.

대표적으로 LD_LIBRARY_PATH이 있는데 표준의 디렉토리들을 찾기 전에 찾아보게 되는 라이브러리의 디렉토리들을 콜론으로 구분해놓는 환경변수이다.

 

2. log 파일 확인

정기점검의 꽃이라고 할 수 있죠. 정책 서버가 잘 동작하고 있는지 확인하기 위해서는 log 파일의 분석이 매우 중요 합니다. 서버가 잘 동작하고 있는지 정기정검을 매일 가면 좋겠지만 그건 너무 힘들겠죠? 그래서 정기정검은 보통 한달에 한번이나 분기에 한번씩 갑니다. 그러면 log파일이 많이 쌓여있겠죠? 

이럴땐 debug나 info정보 말고 error 문구만 확인하는 것이 좋습니다. error 로그파일만 뽑아내는 명령어는 아래와 같습니다.

grep 'ERROR' *.log

혹은 10월달의 error log만 확인하고 싶을 때는

grep 'ERROR' 파일명.2018-10*.log로 확인하면 됩니다.

 

3. 디스크 사용량 확인

log 파일이 쌓이다 보면 용량의 사용률이 100%가 될 수가 있는데 이것을 full찼다고 합니다. 디스크가 full차면 어떻게 될까요? 사직서 써야할지도 몰라요.. 모든 프로그램이 동작이 안되고 심하면 켜지지 않을 수도 있어요 이제까지 한게 다날라가죠... 그래서 디스크 사용량을 확인해주는게 좋아요

df -Ph로 확인 합니다. Use가 80%가 넘으면 주의가 필요합니다.

 

- df:디스크 용량 확인

- df 옵션

옵션 설명
-h 읽기 쉽게 보기
-P 한 줄로 출력

 

유닉스는 명령어가 다를 수 있으니 유의하시기 바랍니다.

 

4. 라이센스 확인

회사의 주 목적은 돈을 버는 것이기 때문에 라이센스 발급으로 돈을 벌어요. 뭔가 에러가 발생했을 때 라이센스의 유효기간이 지나지 않았는지, license가 위치에 맞게 있는지 확인해 줘야합니다.

 

5. JNI(Java Native Interface) 확인

JNI는 최초 참조 라이브러리로 C, C++ 그리고 어샘블리 같은 다른 언어들로 작성된 라이브러리들을 호출하거나 반대로 호출되게 하는 역할을 해요. 그래서 확인을 해줘야 합니다.

마찬가지로 ldd 파일명jni.so   로 확인합니다.

 

6. 그 밖에 정기점검 시 주의해야 할 사항들

다른 회사의 putty 접속할 때에는 보안을 위해 오랜 시간 입력하지 않았을 때 로그아웃되는 기능이 걸어져있을 수도 있어요. 그래서 tail 명령어로 로그아웃되지 않게 해주는 것이 좋습니다. 꼭 하지 않아도 되지만 로그아웃 되었을 때 또 로그인을 해달라고 하기에는 번거로우니깐 말이죠 ㅎ

 

또한 찾고자 하는 것의 위치를 못찾을 때 사용하는 명령어로는 find가 있습니다.

- find:파일 및 디렉토리 검색

find pathname expression action

- find 명령어 형식

형식 설명
경로(pathname) 검색을 시작할 절대경로 또는 상대경로
조건(expression)
검색 조건 지정
동작(action) 파일 검색 후 동작 지정

- find 명령어 조건(expression)

조건 설명
-name filename 특정 파일 이름 지정(메타문자 사용 가능)
-type

검색할 파일 종류 지정
Ex) f(파일), d(디렉토리) ls-l 의 파일 종류를 지정
-perm 특정 권한을 가진 파일 검색
-user LoginID 특정 사용자가 소유한 파일 검색
-size [+|-]n 파일의 특정 크기 검색
+n은 이상, -n은 이하, n은 정확한 크기를 나타냄
-atime [+|-]n 파일에 접근한 시간 검색
-mtime [+|-]n 파일을 수정한 시간 검색

 

지금까지 정기점검때 사용하는 명령어에 대해서 정리해봤는데요. 꼭 이렇게만 정기정검한다. 이런것은 없습니다. 회사마다 정기점검 하는 방식이 다르기 때문이죠. 이 내용을 읽어봤는데 이해가 안가도 괜찮습니다. 회사 들어가기전 예습이라 생각하시고 편안하게 읽어보세요.

반응형

댓글