리눅스 서버 운영

리눅스 서버 운영은 안정적이고 효율적인 서버 환경을 구축하기 위해 필수적인 작업입니다. 이번 글에서는 bash 스크립트를 사용하여 리눅스 서버를 운영하는 방법을 다루겠습니다.

1. 서버 모니터링 스크립트 작성하기

서버의 성능과 상태를 모니터링하기 위해 스크립트를 작성하는 것은 매우 유용합니다. 여기서는 CPU, 메모리, 디스크 사용량 등의 정보를 확인하는 간단한 예시를 소개하겠습니다.

#!/bin/bash

cpu_usage=$(top -bn1 | awk '/Cpu/ {print $2}')
memory_usage=$(free -m | awk '/Mem:/ {print $3}')
disk_usage=$(df -h / | awk '/\// {print $5}')

echo "CPU Usage: $cpu_usage%"
echo "Memory Usage: $memory_usage MB"
echo "Disk Usage: $disk_usage"

위 스크립트는 top, free, df 명령어를 사용하여 CPU, 메모리, 디스크 사용량을 확인하고 출력하는 기능을 제공합니다. 이 스크립트를 정기적으로 실행하면 서버의 상태를 실시간으로 모니터링할 수 있습니다.

2. 로그 파일 관리 스크립트 작성하기

서버 운영에서 로그 파일은 중요한 정보를 담고 있으며, 적절하게 관리되어야 합니다. 로그 파일의 용량이 너무 커지거나, 오래된 로그 파일은 삭제되어야 합니다. 이를 자동화하기 위한 스크립트를 작성해보겠습니다.

#!/bin/bash

log_directory="/var/log"
max_log_size=5000000 # 5MB

find $log_directory -name "*.log" | while read logfile
do
    log_size=$(du -b $logfile | awk '{print $1}')
    if [ $log_size -gt $max_log_size ]; then
        echo "Deleting $logfile"
        rm $logfile
    fi
done

위 스크립트는 /var/log 디렉토리 내의 모든 .log 파일을 찾아 용량을 확인하고, 지정한 용량보다 큰 파일을 삭제하는 기능을 제공합니다. 이 스크립트를 정기적으로 실행하면 로그 파일을 효과적으로 관리할 수 있습니다.

3. 자동화 작업 스크립트 작성하기

서버 운영에서는 반복되는 작업을 자동화하여 시간과 노력을 절약할 수 있습니다. 이번에는 예시로 웹 서버 재시작을 자동화하는 스크립트를 작성해보겠습니다.

#!/bin/bash

web_server="nginx"

if pgrep -x "$web_server" > /dev/null
then
    echo "$web_server is running. Restarting..."
    service $web_server restart
else
    echo "$web_server is not running. Starting..."
    service $web_server start
fi

위 스크립트는 nginx 웹 서버를 확인하고, 실행 중이면 재시작하고, 실행 중이 아니면 시작하는 기능을 제공합니다. 이 스크립트를 정기적으로 실행하면 웹 서버의 상태를 체크하고 필요에 따라 자동으로 제어할 수 있습니다.

리눅스 서버 운영을 위해 bash 스크립트를 활용하는 방법을 알아보았습니다. 위 예시를 참고하여 자신의 서버에 맞는 스크립트를 작성하여 안정적인 서버 운영을 실현해보세요.