文件检查 IP 更改

文件检查 IP 更改

我需要通过 scp 更新服务器上包含我的外部 IP 地址的文件。在更新文件之前,我想确保它包含实际的 IP 地址,否则不得在服务器上更新它。

我的 cron 脚本检查我的 IP 经常导致垃圾错误结果。

我怎样才能实现我的目标?

答案1

如果您当前正在使用

curl icanhazip.com > ip-location1.txt

然后,通过添加-f选项,如果网络服务器返回错误(并且没有输出),则可以curl返回错误,因此希望不需要弄清楚输出是 IP 地址还是 HTML 错误消息。

curl -f icanhazip.com > ip-location1.txt

稍微复杂一点,您可以添加重试功能:

for i in 1 2 3   # if you want more retries, add more numbers here
do
    curl -f icanhazip.com > ip-location1.txt
    if [ $? -eq 0 ] && [ -s ip-location1.txt ]
    then
        break
    fi
    # if we get here, the current attempt failed
    sleep 5  # be nice and wait a bit before retrying instead of spamming the service
done
if [ ! -s ip-location1.txt ]
then
    echo "i cannot haz ip."
    # do whatever you want to do in case of all the retries fail
fi

相关内容