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