리눅스에서 3시간마다 인터넷 속도 자동 측정 시스템 구축하기

2025. 3. 20. 01:00·Linux
반응형

인터넷 속도를 정기적으로 모니터링하는 것은 네트워크 문제를 진단하고 인터넷 서비스 제공업체(ISP)의 서비스 품질을 평가하는 데 매우 유용합니다. 이 글에서는 리눅스 시스템에서 3시간마다 자동으로 인터넷 속도를 측정하고 로그를 남기는 시스템을 구축하는 방법을 상세히 알아보겠습니다.

시스템 구성 요소

이 시스템은 다음과 같은 구성 요소로 이루어집니다:

  1. 속도 측정 도구: speedtest-cli 유틸리티
  2. 자동화 스크립트: 측정 결과를 로그 파일에 기록
  3. 정기 실행 설정: cron을 사용한 주기적 실행
  4. 로그 관리: 로그 로테이션으로 디스크 공간 관리

1. 속도 측정 도구 설치

먼저 인터넷 속도를 측정할 수 있는 speedtest-cli 도구를 설치합니다. 이 도구는 Speedtest.net의 서비스를 커맨드 라인에서 이용할 수 있게 해주는 파이썬 기반 도구입니다.

sudo apt update
sudo apt install -y speedtest-cli

Debian/Ubuntu 기반이 아닌 다른 배포판을 사용하는 경우, 해당 패키지 관리자를 사용하세요. 예를 들어 Fedora에서는:

sudo dnf install speedtest-cli

2. 속도 측정 스크립트 생성

이제 인터넷 속도를 측정하고 결과를 로그 파일에 기록하는 스크립트를 작성합니다.

sudo nano /usr/local/bin/speed_test.sh

스크립트에 다음 내용을 입력합니다:

#!/bin/bash

# 로그 파일 경로 설정
LOG_FILE="/var/log/speedtest.log"

# 현재 날짜 및 시간 가져오기
DATE=$(date "+%Y-%m-%d %H:%M:%S")

# 로그 파일에 시간 기록과 함께 측정 시작 표시
echo "=== 인터넷 속도 테스트: $DATE ===" >> $LOG_FILE

# speedtest-cli 실행하고 결과를 로그 파일에 기록
# --simple 옵션은 간단한 형식으로 결과 출력
speedtest-cli --simple >> $LOG_FILE

# 가독성을 위한 빈 줄 추가
echo "" >> $LOG_FILE

스크립트 파일에 실행 권한을 부여합니다:

sudo chmod +x /usr/local/bin/speed_test.sh

3. cron 작업 설정

이제 스크립트를 3시간마다 자동으로 실행하도록 cron 작업을 설정합니다. cron은 리눅스에서 작업을 주기적으로 실행하기 위한 시스템 유틸리티입니다.

sudo crontab -e

편집기가 열리면 다음 내용을 추가합니다:

0 */3 * * * /usr/local/bin/speed_test.sh

이 설정은 매일 00:00, 03:00, 06:00, 09:00, 12:00, 15:00, 18:00, 21:00에 스크립트를 실행합니다.

4. 로그 로테이션 설정

로그 파일이 무한정 커지는 것을 방지하기 위해 로그 로테이션을 설정합니다. 이는 특히 장기간 시스템을 운영할 때 디스크 공간을 효율적으로 관리하는 데 중요합니다.

sudo nano /etc/logrotate.d/speedtest

다음 내용을 입력합니다:

/var/log/speedtest.log {
    weekly          # 일주일마다 로테이션
    rotate 4        # 최대 4개의 로그 파일 유지
    compress        # 오래된 로그 파일 압축
    missingok       # 로그 파일이 없어도 에러 발생하지 않음
    notifempty      # 빈 파일은 로테이션하지 않음
}

5. 시스템 테스트

설정이 완료되었으니 스크립트가 제대로 작동하는지 테스트해 봅시다:

sudo /usr/local/bin/speed_test.sh

그리고 로그 파일을 확인합니다:

cat /var/log/speedtest.log

다음과 비슷한 출력이 표시되어야 합니다:

=== 인터넷 속도 테스트: 2023-09-01 14:30:25 ===
Ping: 24.584 ms
Download: 95.32 Mbit/s
Upload: 10.54 Mbit/s

6. 로그 확인 및 분석

정기적으로 로그를 확인하여 인터넷 속도 패턴을 분석할 수 있습니다:

# 전체 로그 확인
cat /var/log/speedtest.log

# 실시간으로 로그 확인
tail -f /var/log/speedtest.log

# 다운로드 속도만 추출
grep "Download" /var/log/speedtest.log

# 특정 날짜의 로그만 확인
grep "2023-09-01" /var/log/speedtest.log

이 데이터를 사용하여 시간대별 속도 변화를 추적하고, ISP가 약속한 속도를 제공하는지 확인할 수 있습니다.

결론

이 글에서는 리눅스 시스템에서 3시간마다 인터넷 속도를 자동으로 측정하고 로그를 남기는 시스템을 구축하는 방법을 알아보았습니다. 이 시스템은 네트워크 성능 모니터링과 ISP 서비스 품질 검증에 매우 유용합니다.

스크립트를 필요에 맞게 수정하고, 더 정교한 분석 도구를 추가하여 사용 사례에 맞게 확장할 수 있습니다. 리눅스의 강력한 자동화 기능을 활용하면 이와 같은 유용한 모니터링 시스템을 손쉽게 구축할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'Linux' 카테고리의 다른 글

PM2로 Node.js 애플리케이션 관리하기  (0) 2025.02.18
nohup : 백그라운드 프로세스 실행  (1) 2025.02.03
Sudoers : 권한 관리  (1) 2025.02.02
'Linux' 카테고리의 다른 글
  • PM2로 Node.js 애플리케이션 관리하기
  • nohup : 백그라운드 프로세스 실행
  • Sudoers : 권한 관리
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    긴유통기한우유
    appdevelopment
    스크립트 실행 순서
    스크립트 실행
    스마트스토어리뷰
    ipcamera
    list
    learntocode
    카페24리뷰
    셀레니움
    C#
    라떼우유
    쇼핑몰리뷰
    파이썬
    unity
    카페24리뷰이관
    codingtips
    리스트
    programmerlife
    Python
    리뷰이관
    devlife
    codingcommunity
    rtsp
    리뷰관리
    cv2
    상품 리뷰 크롤링
    유니티
    믈레코비타멸균우유
    programming101
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
리눅스에서 3시간마다 인터넷 속도 자동 측정 시스템 구축하기
상단으로

티스토리툴바