Bash shell script Linux Server System Information on Linux

Bash shell script to view Linux Server System Information


Bash Shell 스크립트는 UNIX와 Linux 환경에서 사용되는 스크립트 언어로, Bash(Bourne-Again SHell) 셸에서 사용할 수 있는 명령어를 직렬화하여 일련의 작업을 자동화하는 데 사용됩니다.

간단하게 RHEL 계열의 리눅스 시스템에 대한 정보를 확인할 수 있는 스크립트

  1. Hostname             
  2. Uptime               
  3. Processor Name    > arm VM에서 진행후 미표기
  4. OS Version           
  5. Kernel Version       
  6. Architecture         
  7. Current Time         
  8. System Product       
  9. Active User          
  10. System Main IP     

기본적으로 구성은 10가지.

 로그 파일은 사용자의 홈 디렉토리에 생성됩니다.

#!/bin/bash

log_file=~/system_check_$(date +%Y%m%d%H%M%S).log


echo "##### Create 2023-11-21 Version 1.0 ######" >> $log_file
echo "##### Create By.EndofLinux WebSite Admin ########" >> $log_file

echo >> $log_file

# System Info # 
echo "################## 0. Server System Info ##################" >> $log_file
echo "System Information >> " >> $log_file
echo "Hostname              : $(hostname)" >> $log_file
echo "Uptime                : $(uptime -p)" >> $log_file
echo "Processor Name        : $(grep 'model name' /proc/cpuinfo | head -1 | awk -F ':' '{print $2}')" >> $log_file
echo "OS Version            : $(cat /etc/redhat-release)" >> $log_file
echo "Kernel Version        : $(uname -r)" >> $log_file
echo "Architecture          : $(uname -m)" >> $log_file
echo "Current Time          : $(date)" >> $log_file
echo "System Product        : $(sudo dmidecode -s system-product-name)" >> $log_file
echo "Active User           : $(whoami)" >> $log_file
echo "System Main IP        : $(hostname -I | awk '{print $1}')" >> $log_file
echo "" >> $log_file

** 스크립트 작성 후 실행권한 부여 **

# chmod +x /path/~~.sh 
Linux System Information on Linux

호스트 이름: 현재 시스템의 이름을 출력합니다.

가동 시간: 시스템이 얼마나 오래 동작했는지를 출력합니다.

프로세서 이름: 시스템의 프로세서 모델 이름을 출력합니다.

OS 버전: 운영시스템의 버전을 출력합니다.

커널 버전: 커널의 버전을 출력합니다.

아키텍처: 시스템의 아키텍처 (예: x86, x86_64 등)를 출력합니다.

현재 시간: 현재 시간을 출력합니다.

시스템 제품: 시스템 제품 이름을 출력합니다.

활성 사용자: 현재 사용자 이름을 출력합니다.

시스템 주 IP: 시스템의 주 IP 주소를 출력합니다.


메모리, 스왑, CPU 사용량을 %로 표기

# Memory Usage
echo "################## 1. Memory Usage ##################" >> $log_file
free -m | awk 'NR==2{printf "Memory Usage: %.2f%%\n", $3*100/$2 }' >> $log_file
echo "" >> $log_file

# Swap Usage
echo "################## 2. Swap Usage ##################" >> $log_file
free -m | awk '/Swap/ { printf "Swap Usage: %.2f%%\n", $3/$2*100 }' >> $log_file
echo "" >> $log_file

# CPU Usage
echo "################## 3. CPU Usage ##################" >> $log_file
echo "CPU Usage : $(top -b -n2 | grep "Cpu(s)" | tail -n 1 | awk '{print $2 + $4}')%" >> $log_file
echo "" >> $log_file

free -m 명령어는 메모리와 스왑의 전체 용량과 사용 용량을 메가바이트 단위로 출력. 이를 awk 명령어로 파싱하여 사용율을 계산합니다.

top -b -n2는 CPU 사용율을 출력하는데 사용, 시스템의 전반적인 상태를 보여주는 top 명령어를 배치 모드로 2번 실행하는 것입니다. CPU 사용율을 파싱하여 사용율을 계산합니다.

Linux system information script

By Low ahn

리눅스를 처음 접하시는 분들은 위한 다양한 리눅스 정보를 공유합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다