Envíeme un correo electrónico cuando cambie la IP externa.

Envíeme un correo electrónico cuando cambie la IP externa.

Estoy intentando escribir un script bash para mi servidor. Lo que hace este script es ejecutar curl para obtener la dirección IP más reciente de mi casilla y luego enviarme un correo electrónico si es diferente de la dirección IP anterior almacenada en un archivo.

Esto es lo que tengo ahora:

#!/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

Intenté usarlo if; then; else;también, pero no puedo lograr que el script reaccione de manera diferente cuando las direcciones IP son las mismas.

Creo que el problema surge de mi declaración de variable para $y.

Respuesta1

Debe dejar espacios entre operandos dentro de los corchetes de prueba [].

#!/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

información relacionada