Ainakin minun pitää päästä päivittäin, monesti montakin kertaa omalle kotipalvelimelle taloverkon ulkopuolelta. Käytän tähän ainoastaan SSH/SFTP/SCP:tä. Ongelmia tulee, jos ISP joutuu muuttamaan kotipisteiden IP-osoitteita. Tätä varten on olemassa monenkinlaisia temppuja. Omaan tarpeeseeni kehitin mahdollisimman yksinkertaisen ratkaisun. (Mitä, eikö sinulla ole kotiserveriä ?!)
- Talon ulkopuolisessa verkossa olevalle serverille tehdään yksi sivu: osoite.shtml, jonka sisältönä on ainoastaan yks tagi:
<!--#echo var="REMOTE_ADDR"-->
Tämä tulostaa selaimen ruudulle sivua lukevan työaseman osoitteen.
Haetaan crontab:n ohjaamana tämä osoite wget:llä ja verrataan sitä edellisenä päivänä haettuun osoitteeseen. Mikäli osoitteet ovat erilaiset, lähetetään sähköpostia omaan postilaatikkoon. Postin lähettämiseen käytetään samaa ssmtp -pakettia, joka on jo ladattu serveriin backup-järjestelmän tiedotuksia varten. Backupista olen kirjoittanut jo aiemmin.
Crontabiksi käy vaikka seuraava, joka liipaisee tarkistuksen kolmen tunnin välein joka päivä:
07 */3 * * * /home/bin/hae_IP/hae_IP.sh 2>> /var/log/cron_root.err 1>>/dev/null
Ohessa listaus käyttämästäni scriptistä
Scriptissä sisällä oleva sähköpostiosoite sekä palvelun tarjoava www-osoite kannattaa vaihtaa. Aion kyllä pitää tuon www-sivun tuolla, mutta en takaa sitä.
------------<hae_IP.sh>-------------
#!/bin/bash
# This script wgets a certain html file from a server outside the home net
# The file contains only an environment tag <!--#echo var="REMOTE_ADDR"-->
# While fetched with wget, the file contains the IP address of home
# Compare this to a day old version and sen a message, if the file has changed.
RECEIVER=mistofeles@postipalvelin.fi
MESSAGE=temp.tmp;
# ------------- system commands used by this script --------------------
ECHO=/bin/echo;
CAT=/bin/cat;
SENDMAIL=/usr/sbin/sendmail;
# ------------- the script itself --------------------------------------
# Copy previous address to another file:
mv osoite.shtml old_IP;
# Get the new value:
wget -q
http://www.saunalahti.fi/orfeus/osoite.shtml# Compare values = files:
cmp -s osoite.shtml old_IP;
if (( $? )) ; then {
$ECHO "To: $RECEIVER" > $MESSAGE;
$ECHO -n "Subject: Uusi koti-IP: " >> $MESSAGE;
$CAT osoite.shtml >> $MESSAGE;
$ECHO "" >>$MESSAGE;
$CAT osoite.shtml >> $MESSAGE;
$ECHO " = Koti-ADSL-liittyman uusi ulkoinen osoite." >>$MESSAGE;
$CAT $MESSAGE | $SENDMAIL $RECEIVER;
} fi;
------------</hae_IP.sh>-------------