[bglug] Script per mappare IP dinamici
Manuel manetta
manetta@mediacom.it
Mer 4 Lug 2007 12:32:00 CEST
Ciao a tutti,
io ho questa esigenza: una serie di server da gestire che hanno
accesso ad internet con IP dinamico. Io dispongo di un IP statico e
non vorrei utilizzare servizi tipo dyndns per poter accedere in SSH.
L'idea che mi è venuta in mente è un piccolo script, stupidissimo, ma
ha una sua utilità. Mi piacerebbe avere qualche suggerimento su come
migliorarlo.
Da lato cliente ho uno script in cron.hourly tipo questo:
#!/bin/bash
curl http://MIO.INDIRIZZO.IP.STATICO/cliente/nomecliente > /dev/null
# --- END SCRIPT ---
in questo modo mi trovo nei log di apache qualcosa tipo:
indirizzo.ip.remoto.dinamico - - [04/Jul/2007:12:00:01 +0200] "GET
/cliente/nomecliente HTTP/1.1" 401 401 "-"
a questo punto io ho un file clienti contenente un elenco dei nomi che
troverò nel file di log di apache (ovviamente, identico al nomecliente
nello script di curl) e lo script che gira sul mio server è questo:
(ho una copia di /etc/hosts senza alcun cliente dinamico, ma solo
macchine locali o con ip statico, che si chiama hosts.base)
#!/bin/bash
cat /dev/null > /etc/hosts
cp /etc/hosts.base /etc/hosts
for nome in $(cat clienti); do
cat /var/log/apache2/access.log | grep $nome | sed 's/\// /g'
| awk '{ print $1 " " $10 }' | tail -n 1 >> /etc/hosts
done
# --- END SCRIPT ---
la riga che inizia con il cat server per darmi in output una coppia IP
NOMEMACCHINA formattato come piace al file hosts
Beh, così sembra funzionare.
Idee???
Grazie e ciao
Manuel
Maggiori informazioni sulla lista
bglug