yeonghoon.kim

  • 게시판
  • 갤러리
  • aws

sar bash 스크립트

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

#!/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 댓글

사진 및 파일 첨부

여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.

파일 용량 제한 : 0MB (허용 확장자 : *.*)

업로드 중... (0%)

0개 첨부 됨 ( / )
 
번호 제목 글쓴이 날짜 조회 수
공지 2025 일본 여행 계획 김영훈 2024.10.10 985
공지 현금, 저축, 투자, 지출, 예산, 보험 내역(2024-05-30) 김영훈 2024.03.10 638
245 rocky linux 9 - init_script.sh 김영훈 2023.12.08 399
244 자바스크립트 화살표 함수 김영훈 2023.10.06 366
» sar bash 스크립트 [1] 김영훈 2023.09.05 425
242 ELK Stack 테스트 [1] 김영훈 2023.08.30 322
241 CentOS7 php 7.4 + composer 설치 김영훈 2023.08.18 526
240 iptables ip 포워딩 [1] 김영훈 2023.08.17 309
239 삼성 스마트태그 배터리 - CR2032 김영훈 2023.08.15 279
238 geoip2 python [1] 김영훈 2023.08.10 331
237 pyapns_client 동시에 여러 기기로 푸시 보내기 김영훈 2023.08.03 393
236 2학기 수강신청 김영훈 2023.08.01 297
235 let's encrypt 와일드카드 인증서 발급 (CentOS7) [2] 김영훈 2023.07.26 580
234 FCM 푸시보내기 - firebase_admin 김영훈 2023.07.20 300
233 FCM 푸시 보내기 - pyfcm 김영훈 2023.07.20 341
232 rockylinux kvm [1] 김영훈 2023.07.12 331
231 SAP_1. Identity & Federation Section 김영훈 2023.06.13 278
230 [Bard] node.js forever 사용법 알려줘 김영훈 2023.05.18 305
229 Sectigo PositiveSSL 신청 시 파일 - 20230512 기준 [1] file 김영훈 2023.05.12 333
228 데이터베이스 3주차 실습 김영훈 2023.03.19 341
227 python csv 파일 읽은 후 엑셀 파일로 저장 샘플 김영훈 2023.03.16 372
226 데이터베이스 2주차 - 실습 김영훈 2023.03.08 325
쓰기 태그
 첫 페이지 1 2 3 4 5 6 7 8 9 10 끝 페이지