通过ubuntu定时上报公网Ip到相关邮箱

98 阅读1分钟
#!/bin/bash

# 获取当前IP地址
CURRENT_IP=$(curl -s http://icanhazip.com | awk '{print $1}')

echo "ip $CURRENT_IP"
# 定义一个文件来存储之前的IP地址
IP_FILE="/tmp/last_ip.txt"
LAST_IP=127.0.0.1
# 检查文件是否存在,如果不存在则创建并写入当前IP
if [ ! -f "$IP_FILE" ]; then
    echo "创建文件"
    echo "$CURRENT_IP" > "$IP_FILE"
else
   LAST_IP=$(cat "$IP_FILE")
    #exit 0
fi

half_hour_ago=$(date -d '1 day ago' +"%s")
if [ $(ls -l --time-style=+%s $IP_FILE | awk '{print $6}') -gt $half_hour_ago ]; then
    echo "文件最近1天内有修改"
else
    echo "文件没有最近1天内的修改"
    LAST_IP=127.0.0.1
fi


# 读取之前的IP地址

# 比较IP地址
if [ "$CURRENT_IP" != "$LAST_IP" ]; then
    echo "发送邮件"
    current_time=$(date "+%Y-%m-%d %H:%M:%S")
    echo "IP地址已变更,从 $LAST_IP 变更为 $CURRENT_IP" | mail -s "IP地址变更通知-> $current_time" 222222@qq22.com
    echo "$CURRENT_IP" > "$IP_FILE"  # 更新文件中的IP地址
fi