리눅스 서버 관리

소개

리눅스 서버는 많은 기업에서 중요한 역할을 담당하고 있습니다. 리눅스 서버를 효과적으로 관리하기 위해서는 적절한 명령어를 사용하여 서버를 모니터링하고 에러를 처리하는 등의 작업을 수행해야 합니다. 이 글에서는 bash 쉘을 사용하여 리눅스 서버 관리에 도움이 되는 몇 가지 예제 코드를 소개하겠습니다.

1. 서버 상태 확인하기

서버의 현재 상태를 확인하는 것은 서버 관리의 중요한 부분입니다. 다음은 서버의 CPU, 메모리, 디스크 사용량을 확인하는 간단한 bash 스크립트입니다.

#!/bin/bash

# CPU 사용량 확인하기
cpu_usage=$(top -b -n 1 | grep "Cpu(s)" | awk '{print $2 + $4}')
echo "CPU 사용량: $cpu_usage%"

# 메모리 사용량 확인하기
mem_usage=$(free | grep Mem | awk '{print $3/$2 * 100}')
echo "메모리 사용량: $mem_usage%"

# 디스크 사용량 확인하기
disk_usage=$(df -h | awk '/\/$/ {print $(NF-1)}')
echo "디스크 사용량: $disk_usage"

2. 로그 파일 모니터링하기

서버의 로그 파일은 문제 해결과 보안상 중요한 정보를 담고 있습니다. 이러한 로그 파일을 실시간으로 모니터링하여 문제를 조기에 발견하고 대응할 수 있습니다. 다음은 특정 로그 파일을 모니터링하고, 새로운 로그 메시지를 출력하는 스크립트입니다.

#!/bin/bash

logfile="/var/log/syslog"

tail -f $logfile | while read line
do
    echo $line
done

이 스크립트를 실행하면 /var/log/syslog 파일의 새로운 로그 메시지가 실시간으로 출력됩니다.

3. 서버 에러 메시지 처리하기

서버에서 발생하는 에러 메시지는 즉시 처리되어야 합니다. 다음은 서버에서 특정 패턴을 가진 에러 메시지를 찾아 자동으로 이메일로 알림을 보내는 스크립트입니다.

#!/bin/bash

error_log="/var/log/nginx/error.log"
error_pattern="error"

tail -n 0 -f $error_log | grep --line-buffered -e "$error_pattern" | while read line
do
    echo $line | mail -s "에러 발생 - $HOSTNAME" admin@example.com
done

이 스크립트는 /var/log/nginx/error.log 파일에서 “error” 패턴을 가진 새로운 에러 메시지를 모니터링하며, 메시지를 발견하면 이메일로 알림을 보냅니다.

결론

위의 예제 코드들은 리눅스 서버 관리에 도움이 되는 몇 가지 bash 스크립트를 소개했습니다. 이를 활용하여 서버 상태를 모니터링하고, 로그 파일을 실시간으로 모니터링하며, 에러 메시지를 처리할 수 있습니다. 이러한 작업을 자동화하면 서버 관리의 효율성과 안정성을 크게 향상시킬 수 있습니다.