본문 바로가기

Linux

atop 설정

atop 설치

# SLE15 가능
zypper install atop-2.4.0-150500.3.1.x86_64.rpm

config 설정 (로그 기록위해 sh로 구성함)

cat /etc/atop/atop_logger.sh

#!/bin/bash

sleep 60

LOG_DIR="/var/log/atop"
CURRENT_DATE=$(date +%Y%m%d)
LOG_FILE="$LOG_DIR/atop_$CURRENT_DATE.raw"

mkdir -p $LOG_DIR

# 재부팅 시 기존 로그 파일이 있으면 이어서 기록, 없으면 새 파일 생성
if [[ ! -f "$LOG_FILE" ]]; then
    echo "Starting new atop log for $CURRENT_DATE"
else
    echo "Continuing atop log for $CURRENT_DATE"
fi

# 기존 atop 프로세스가 있으면 종료
if pgrep -f "/usr/bin/atop -w $LOG_FILE" > /dev/null; then
    pkill -f "/usr/bin/atop -w $LOG_FILE"
fi

# atop 로그 수집 시작 - 1분 간격으로 현재 날짜 로그 파일에 기록 시작
nohup /usr/bin/atop -w "$LOG_FILE" 60 > /dev/null 2>&1 &

# 자정에 날짜가 바뀌면 다음날 새 파일로 기록하도록 설정
while true; do
    NEW_DATE=$(date +%Y%m%d)

    # 자정이 지나서 날짜가 변경되면 새 로그 파일로 전환
    if [[ "$NEW_DATE" != "$CURRENT_DATE" ]]; then
        CURRENT_DATE=$NEW_DATE
        LOG_FILE="$LOG_DIR/atop_$CURRENT_DATE.raw"

        # 새로운 날짜의 파일이 존재하지 않으면 새로 작성하고, 이어서 기록
        echo "Starting new atop log for $CURRENT_DATE"
        pkill -f "/usr/bin/atop -w"  # 기존 atop 프로세스 종료
        nohup /usr/bin/atop -w "$LOG_FILE" 60 > /dev/null 2>&1 &
    fi

    sleep 60  # 매분 확인하여 날짜 변경을 감지
done

----#권한 설정 777로 

서비스 구성

 **cat /etc/systemd/system/atop-logger.service**

[Unit]
Description=Atop Continuous Logging Service
After=network.target

[Service]
ExecStart=/etc/atop/atop_logger.sh
Restart=always

[Install]
WantedBy=multi-user.target

재시작 및 확인

systemctl daemon-reload
systemctl restart atop-logger.service
systemctl status atop-logger.service

#확인
ll /var/log/atop
-rw-r--r-- 1 root root 67659 Nov  6 14:48 atop_20241106.raw

'Linux' 카테고리의 다른 글

suse linux zypper gpg key 해결  (0) 2024.11.21
atop 커맨드  (0) 2024.11.21
sar 커맨드  (0) 2024.11.21
sar 설정  (0) 2024.11.21
swap 설정  (0) 2024.11.21