Code States/TIL

[0314] 리눅스 운영체제 - 시스템 모니터링

ki1111m2 2023. 3. 14. 15:08

학습 목표

관리자로서의 리눅스 ~ 자동화

  • 시스템 관리자가 하는 일을 이해할 수 있다.
  • 사용자 및 루트 권한에 대해 이해하고, 사용자 및 그룹 관리를 할 수있다.
  • 파일의 권한을 변경하고 관리할 수 있다.
  • 프로그램과 프로세스의 차이를 이해하고, 프로세스를 확인/종료할 수 있다.
  • 백그라운드 프로세스와 서비스를 이해하고, 관리할 수 있다.
  • cron 및 bash 스크립트를 이용해서 자동화를 할 수 있다.

시스템 모니터링


  • uname: 시스템과 커널의 정보
    • -a: 커널 이름, 노드 이름, 커널 릴리즈, 커널 버전, 프로세서, 하드웨어 플랫폼, 운영 체제 정보를 알 수 있음
  • top: 운영체제 작업 내역 모니터링
    • 로드 애버리지(Load Average): CPU가 수행하는 작업의 양을 순서대로 1분, 5분, 15분 간격의 평균값으로 표시
    • 태스크(Task/Process): 현재 프로세스들의 상태를 나타내주는 영역
    • 메모리 사용량: 첫 번째 줄은 Mem으로 RAM의 메모리 영역, 두 번째 줄은 디스크를 메모리처럼 이용하는 Swap 메모리 영역
  • ifconfig: 네트워크 기본 모니터링
    • enp0s3: 네트워크 인터페이스
    • flags: 네트워크 카드의 상태 표시
    • mtu: 네트워크 최대 전송 단위(Maximum Transfer Unit)
    • inet: 네트워크에 할당된 IP 주소
    • netmask: 네트워크에 할당된 넷마스크 주소
    • broadcast: 네트워크에 할당된 브로드캐스트 주소
    • inet6: 네트워크에 할당된 IPv6 주소
    • prefixlen: IP 주소에서 서브 넷 마스크로 사용될 비트 수
    • scopeid: IPv6의 범위 LOOPBACK / LINKLOCAL / SITELCAL / COMPATv4 / GLOBAL
    • ether: 네트워크 인터페이스의 하드웨어 주소
    • RX packets: 받은 패킷 정보
    • TX packets: 보낸 패킷 정보
    • collision: 충돌된 패킷 수
    • Interrupt: 네트워크 인터페이스가 사용하는 인터럽트 번호
  • lsof: list open files열린 파일 목록 출력
    • COMMAND: 실행 명령어
    • PID: 프로세스 ID
    • USER: 실행한 사용자
    • FD: File Descriptor, 파일의 종류
      • cwd: current working directory
      • rtd: root directory
      • mem: memory-mapped file
      • txt: program text (code and data)
    • TYPE: 파일 종류
      • DIR: 디렉토리
      • REG: Regular File
      • CHR: Character Special File
      • unix: UNIX domain socket
    • DEVICE: 장치 번호
    • SIZE/OFF: 파일의 크기나 오프셋
    • NODE: 노드 번호
    • NAME: 파일 경로 및 파일 이름
  • netstat: network statistics, 네트워크 상태 모니터링
    • -n: IP, Port 번호를 보여줌
    • -a: 모든 네트워크 상태를 보여줌
    • -t: TCP 프로토콜만 보여줌
    • -u: UDP 프로토콜만 보여줌
    • -r: 라우팅 테이블 출력
    • -s: 프로토콜(IP, ICMP, TCP, UDP 등) 별로 통계를보여줌
    • -l: 대기중인 소켓 목록을 보여줌

+)

  • awk: 필드 단위로 패턴을 검색하고 조작하는 명령어
    • 예시) 백그라운드에서 실행 중인 프로세스 중 PPID가 23197인 프로세스의 ID를 찾을 때
      • ps -ef | awk '{print $2, $3}' | grep 23197
    https://isme2n.github.io/devlog/2017/03/01/TIL-ps-명령어/
  • &와 &&차이
    • &: 백그라운드로 동작시킬 때 사용
    • &&: 앞의 명령어가 실행되었을 때 성공한 경우, 다음 명령어 실행
      • ; 성공 여부와 상관 없이 다음 명령어 실행
    • 예시) A와 B 작업을 모두 백그라운드 방식으로 실행하고, 결과물을 따로 저장하고 싶을 때
      • nohup A & B &> nohup2.out
    https://opentutorials.org/module/2538/15818