Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: Mistofelees - 19.12.09 - klo:17.03
-
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>-------------
-
käyhän se noinkin, mutta eikö dynaaminen nimipalvelu olisi paljon vaivattomampi tapa?
esimerkiksi dy.fi (http://www.dy.fi) -palveluun on helppo päivittää osoite automaattisesti.
joissain adsl-modeemeissa on suoraan tuki dynaamisille nimipalveluille.
itse päivitän crontabilla ajamalla skriptin:
#!/bin/bash
wget --delete-after --no-check-certificate --no-proxy --user=<käyttäjätunnus@domain> --password=<salasana> https://www.dy.fi/nic/update?hostname=<tunnus>.dy.fi
-
käyhän se noinkin, mutta eikö dynaaminen nimipalvelu olisi paljon vaivattomampi tapa?
esimerkiksi dy.fi (http://www.dy.fi) -palveluun on helppo päivittää osoite automaattisesti.
En yhtäkkiä keksinyt, miten saan ssh:n toimimaan ulkoa sisään dy.fi:n kautta toimien.
Toisaalta minulla ei ole tarkoitusta asetaa talon sisäistä www-palvelinta näkymään ulospäin.
SSH/SFTP/SCP ovat täysin riittävät työkalut, kun haluan hakea dokumentteja kotiserveriltä, eikä kenelläkään muulla ole sinne asiaa.
-
Toimiiko tämä?
ssh tunnus@osoite.dy.fi