Cron 과 Cband 이용 일일 트래픽량 기록하기

2026. 7. 16. 17:52백엔드/리눅스

 

1. 쉘 스크립트 작성

#!/bin/bash

DOMAIN="도메인.com"
CBAND_DIR="/var/spool/cband"
LOGFILE="/var/log/cband_daily_traffic.csv"

HTTP_FILE="${CBAND_DIR}/${DOMAIN}"
HTTPS_FILE="${CBAND_DIR}/$(echo "$DOMAIN" | tr '[:lower:]' '[:upper:]')_SSL"

get_bytes() {
    if [ -f "$1" ]; then
        od -An -tu8 -N8 "$1" | tr -d ' '
    else
        echo 0
    fi
}

HTTP_BYTES=$(get_bytes "$HTTP_FILE")
HTTPS_BYTES=$(get_bytes "$HTTPS_FILE")
TOTAL_BYTES=$((HTTP_BYTES + HTTPS_BYTES))

HTTP_MB=$(awk "BEGIN {printf \"%.2f\", $HTTP_BYTES/1024/1024}")
HTTP_GB=$(awk "BEGIN {printf \"%.3f\", $HTTP_BYTES/1024/1024/1024}")

HTTPS_MB=$(awk "BEGIN {printf \"%.2f\", $HTTPS_BYTES/1024/1024}")
HTTPS_GB=$(awk "BEGIN {printf \"%.3f\", $HTTPS_BYTES/1024/1024/1024}")

TOTAL_MB=$(awk "BEGIN {printf \"%.2f\", $TOTAL_BYTES/1024/1024}")
TOTAL_GB=$(awk "BEGIN {printf \"%.3f\", $TOTAL_BYTES/1024/1024/1024}")

# 최초 1회 헤더 생성
if [ ! -f "$LOGFILE" ]; then
    echo "DATE,DOMAIN,HTTP_BYTES,HTTP_MB,HTTP_GB,HTTPS_BYTES,HTTPS_MB,HTTPS_GB,TOTAL_BYTES,TOTAL_MB,TOTAL_GB" > "$LOGFILE"
fi

echo "$(date +%F),$DOMAIN,$HTTP_BYTES,$HTTP_MB,$HTTP_GB,$HTTPS_BYTES,$HTTPS_MB,$HTTPS_GB,$TOTAL_BYTES,$TOTAL_MB,$TOTAL_GB" >> "$LOGFILE"
[root@web61 log]# crontab -l
00 17 * * * touch /iweb/zzzzzzz
0 3 * * * /root/crowdsec_apply.sh >/dev/null 2>&1

 

 

 

2. cron 등록

crontab -e

 

55 23 * * * /bin/bash /opt/cmd/script/cband_daily_traffic_record.sh

 

-> 결과: 이렇게 누적 저장 됨

DATE DOMAIN HTTP_BYTES HTTP_MB HTTP_GB HTTPS_BYTES HTTPS_MB HTTPS_GB TOTAL_BYTES TOTAL_MB TOTAL_GB
2026-07-16 도메인.com 120189109 114.62 0.112 1860238964 1774.06 1.732 1980428073 1888.68 1.844
2026-07-16 도메인.com 120189109 114.62 0.112 1872588334 1785.84 1.744 1992777443 1900.46 1.856