← 전체 목록
우분투

Ubuntu에서 IP 주소가 DHCP로 변경될 때 변경된 IP를 감지하고 이메일로 알림

작성일: 2024-12-01 · 원본 자료

Ubuntu에서 IP 주소가 DHCP로 변경될 때 변경된 IP를 감지하고 이메일로 알림을 보내는 Bash 스크립트를 만들기 위해 다음을 수행할 수 있습니다. 다음은 필요한 스크립트와 설정 단계입니다.

스크립트 작성

다음은 백그라운드에서 실행되며, IP가 변경될 때 알림을 보내는 Bash 스크립트입니다.
bash
#!/bin/bash # 이전 IP를 저장할 파일 경로 PREVIOUS_IP_FILE="/tmp/previous_ip.txt" # 메일 설정 TO_EMAIL="your_email@example.com" SMTP_SERVER="smtp.example.com" SMTP_PORT=587 SMTP_USER="your_email@example.com" SMTP_PASS="your_password" # IP를 확인하는 함수 get_current_ip() { hostname -I | awk '{print $1}' } # 이메일 보내기 send_email() { local new_ip=$1 echo -e "Subject: IP Address Changed\n\nYour new IP address is: $new_ip" | \ curl --url "smtp://${SMTP_SERVER}:${SMTP_PORT}" \ --ssl \ --mail-from "$SMTP_USER" \ --mail-rcpt "$TO_EMAIL" \ --user "$SMTP_USER:$SMTP_PASS" } # 초기화: 이전 IP 불러오기 if [[ -f "$PREVIOUS_IP_FILE" ]]; then previous_ip=$(cat "$PREVIOUS_IP_FILE") else previous_ip="" fi # 무한 루프 while true; do # 현재 IP 확인 current_ip=$(get_current_ip) # IP 변경 여부 확인 if [[ "$current_ip" != "$previous_ip" ]]; then echo "IP 변경됨: $current_ip" echo "$current_ip" > "$PREVIOUS_IP_FILE" send_email "$current_ip" previous_ip="$current_ip" fi # 5분 대기 sleep 300 done

스크립트 실행 설정

  1. 스크립트 저장 및 실행 권한 부여 위 스크립트를 예를 들어 /home/youruser/ip_monitor.sh로 저장합니다.
    bash
    chmod +x /home/youruser/ip_monitor.sh
  2. 스크립트를 백그라운드에서 실행 nohup 명령어를 사용하여 스크립트를 백그라운드에서 실행합니다.
    bash
    nohup /home/youruser/ip_monitor.sh &
  3. 시스템 재부팅 시 자동 실행 설정 crontab에 추가합니다:
    bash
    crontab -e
    아래 줄 추가:
    bash
    @reboot /home/youruser/ip_monitor.sh &

필요한 패키지 설치

이메일을 보내기 위해 curl 명령어를 사용하므로 해당 패키지가 설치되어 있는지 확인하세요:
bash
sudo apt update sudo apt install curl
SMTP 정보는 외부 POP3 메일 서버 (예: Gmail, Naver 등)에 맞게 설정해야 합니다. 예를 들어 Gmail을 사용하는 경우 SMTP 서버를 smtp.gmail.com으로 설정하세요. (추가 설정이 필요할 수 있습니다: 구글 앱 비밀번호) 이 스크립트는 네트워크 상태를 주기적으로 확인하며, 변경 사항이 발생할 경우 즉시 알림을 보냅니다.