yeonghoon.kim

  • 게시판
  • 갤러리
  • aws

sar bash 스크립트

김영훈 2023.09.05 12:30 조회 수 : 543

#!/bin/bash
TODAY_DATE=$(date "+%d")
SAR_FILE="/var/log/sa/sa${TODAY_DATE}"
BEFORE_1MIN=$(date "+%Y-%m-%d %H:%M" -d "1 minutes ago")
CPU_USED=$(sar -f ${SAR_FILE} | tail -n 3 | head -n 1 | awk '{ print $4 }')
LOAD_AVG_1MIN=$(sar -f ${SAR_FILE} -q | tail -n 3 | head -n 1 | awk '{ print $5 }')
LOAD_AVG_5MIN=$(sar -f ${SAR_FILE} -q | tail -n 3 | head -n 1 | awk '{ print $6 }')
LOAD_AVG_15MIN=$(sar -f ${SAR_FILE} -q | tail -n 3 | head -n 1 | awk '{ print $7 }')
MEM_TOTAL=$(cat /proc/meminfo | grep MemTotal | awk '{ print $2 }')
MEM_FREE=$(sar -f ${SAR_FILE} -r | tail -n 3 | head -n 1 | awk '{ print $3 }')
MEM_BUFFERS=$(sar -f ${SAR_FILE} -r | tail -n 3 | head -n 1 | awk '{ print $6 }')
MEM_CACHED=$(sar -f ${SAR_FILE} -r | tail -n 3 | head -n 1 | awk '{ print $7 }')
NET_IN_PPS=$(sar -f ${SAR_FILE} -n DEV | grep ens | tail -n 3 | head -n 1 | awk '{ print $4 }')
NET_OUT_PPS=$(sar -f ${SAR_FILE} -n DEV | grep ens | tail -n 3 | head -n 1 | awk '{ print $5 }')
NET_IN_BPS=$(sar -f ${SAR_FILE} -n DEV | grep ens | tail -n 3 | head -n 1 | awk '{ print $6 }')
NET_OUT_BPS=$(sar -f ${SAR_FILE} -n DEV | grep ens | tail -n 3 | head -n 1 | awk '{ print $7 }')
 


  • 추천 0

  • 비추천 0
이 게시물을
목록

댓글 1

  • 김영훈

    2023.09.05 12:30

    이 이해하기 쉽도록 위의 Bash 스크립트를 단계별로 설명해 드리겠습니다. 이 스크립트는 리눅스 시스템에서 실행될 때 다음과 같은 작업을 수행합니다:

    1. 오늘 날짜를 가져와서 `TODAY_DATE` 변수에 저장합니다.
       - `date` 명령어를 사용하여 오늘의 날짜를 `+%d` 형식으로 가져옵니다.

    2. `sar` 명령어를 사용하여 오늘의 시스템 성능 통계 데이터가 저장된 파일 경로를 `SAR_FILE` 변수에 저장합니다.
       - `${TODAY_DATE}`를 사용하여 오늘의 데이터 파일 이름을 생성합니다.

    3. 1분 전의 시간을 계산하여 `BEFORE_1MIN` 변수에 저장합니다.
       - `date` 명령어를 사용하여 현재 시간에서 1분을 뺀 시간을 계산합니다.

    4. CPU 사용량을 `sar` 명령어를 통해 가져와서 `CPU_USED` 변수에 저장합니다.
       - `sar` 명령어로 CPU 사용량 통계를 조회하고, 필요한 정보를 파싱하여 CPU 사용량을 추출합니다.

    5. 1분, 5분 및 15분 간격의 부하 평균을 `sar` 명령어를 사용하여 가져와 각각 `LOAD_AVG_1MIN`, `LOAD_AVG_5MIN`, `LOAD_AVG_15MIN` 변수에 저장합니다.
       - `sar` 명령어로 시스템 부하 평균 정보를 조회하고, 필요한 정보를 파싱하여 저장합니다.

    6. 시스템 메모리 정보를 `/proc/meminfo` 파일과 `sar` 명령어를 사용하여 가져와 각각 `MEM_TOTAL`, `MEM_FREE`, `MEM_BUFFERS`, `MEM_CACHED` 변수에 저장합니다.
       - `/proc/meminfo` 파일에서 총 메모리 용량 및 여러 메모리 관련 정보를 추출합니다.
       - `sar` 명령어로 메모리 사용량 통계를 조회하고, 필요한 정보를 파싱하여 저장합니다.

    7. 네트워크 트래픽 정보를 `sar` 명령어를 사용하여 가져와 `NET_IN_PPS`, `NET_OUT_PPS`, `NET_IN_BPS`, `NET_OUT_BPS` 변수에 저장합니다.
       - `sar` 명령어로 네트워크 트래픽 통계 정보를 조회하고, 필요한 정보를 파싱하여 저장합니다.

    이 스크립트는 시스템 성능 모니터링 및 데이터 수집을 자동화하기 위해 사용될 수 있으며, 각 변수에는 시스템 상태에 대한 정보가 저장됩니다. 이 정보는 이후에 보고서 생성, 경고 및 성능 향상을 위한 의사 결정에 사용될 수 있습니다.

    추천0 비추천0 댓글

번호 제목 글쓴이 날짜 조회 수
공지 2025 일본 여행 계획 김영훈 2024.10.10 1997
공지 현금, 저축, 투자, 지출, 예산, 보험 내역(2024-05-30) 김영훈 2024.03.10 1627
27 CentOS7 php 7.4 + composer 설치 김영훈 2023.08.18 651
26 ELK Stack 테스트 [1] 김영훈 2023.08.30 450
» sar bash 스크립트 [1] 김영훈 2023.09.05 543
24 자바스크립트 화살표 함수 김영훈 2023.10.06 490
23 rocky linux 9 - init_script.sh 김영훈 2023.12.08 538
22 2023년 월간 소비 비중 file 김영훈 2024.01.01 533
21 AttributeError: module 'tarfile' has no attribute 'data_filter' 에러 김영훈 2024.01.02 913
20 Stable Diffusion 설치 - rockylinux9 [테스트 - 나 / 정리 -chatgpt] [1] 김영훈 2024.01.02 1414
19 마크다운 TIL 템플릿 김영훈 2024.01.03 772
18 error: rpmdb: BDB2034 unable to allocate memory for mutex; resize mutex region [1] 김영훈 2024.01.08 1353
17 Oracle 9i cx_Oracle 클라이언트 연결 방법 [1] 김영훈 2024.01.12 1287
16 리눅스 공인 아이피 확인 - curl ipinfo.io 김영훈 2024.01.29 1084
15 오라클 클라우드 arm 환경에서 Palworld 서버 구축 [11] 김영훈 2024.01.29 2147
14 Dev-C++ 5.11 설치 매뉴얼 file 김영훈 2024.03.09 1428
13 openai api를 이용한 챗봇 구현 샘플 김영훈 2024.06.11 1077
12 백업된 디스크 복구 김영훈 2024.06.13 1116
11 달력 이미지(chatgpt) file 김영훈 2024.09.05 1127
10 정보보안기사 오답노트 김영훈 2024.10.01 954
9 rockylinux8 apache-2.4.16, php-5.3.29 설치 file 김영훈 2024.10.11 1254
8 rockylinux8 php7.2 -> php7.4 업그레이드 : dnf module 기능 이용 김영훈 2024.10.14 1122
쓰기 태그
 첫 페이지 5 6 7 8 9 10 11 12 13 14 끝 페이지