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

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으로 설정하세요. (추가 설정이 필요할 수 있습니다: 구글 앱 비밀번호)

이 스크립트는 네트워크 상태를 주기적으로 확인하며, 변경 사항이 발생할 경우 즉시 알림을 보냅니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다