当外部 IP 更改时给我发电子邮件

当外部 IP 更改时给我发电子邮件

我正在尝试为我的服务器编写一个 bash 脚本。该脚本的作用是运行 curl 来获取我的机器的最新 IP 地址,然后如果它与文件中存储的旧 IP 地址不同,则给我发送电子邮件。

这就是我现在所拥有的:

#!/bin/bash
#if ip address changes do
x=$(curl -4 "icanhazip.com")
y=$(cat ./oldIP.txt )
if [ "$x"!="$y" ];
    then
    echo "Current IP Address is $x"
    echo "Previous IP address is $y"
#   y=$x
elif [ "$x"="$y"]
    then
    echo "The IP addresses are the same"
fi
#send email to me

我也尝试使用,if; then; else;但是当 IP 地址相同时,我无法让脚本做出不同的反应。

我相信该问题源于我的变量声明$y

答案1

测试括号 [ ] 内的操作数之间必须留空格。

#!/bin/bash
#if ip address changes do
x=$(curl -4 icanhazip.com )
y=$(cat ./oldIP.txt )
if [ "$x" != "$y" ]
    then
    echo "Current IP Address is $x"
    echo "Previous IP address is $y"
#   y=$x
else
    echo "The IP addresses are the same"
fi
#send email to me

相关内容