automatischer Download einer hosts-Datei (Werbeblocker)
fastix®
- programmiertechnik
0 Vinzenz Mai0 fastix®
Moin an alle Linuxer!
Ich habe hier mal ein Shellscript geschrieben, welches automatisch die hosts-Datei aus einer hosts.local (Mit eigenen Einstellungen) und der hosts.gz von http://banner.fastix.de erstellt.
Bevor ich die Datei zwecks Download auf den Server stelle möchte ich sie vorstellen und mal fragen, was denn die Community davon hält...
Die darin vorkommende Datei "/ect/hosts.local" soll Einstellungen enthalten, die für das lokale Netzwerk gültig sind oder nur in diesem Sinn machen.
#! /bin/sh
if test -e /tmp/hosts.gz; then
rm /tmp/hosts.gz;
fi
echo -n "Lade Datei hosts.gz von banner.fastix.de";
wget http://banner.fastix.de/hosts.gz --output-document=/tmp/hosts.gz > /dev/null 2> /dev/null && echo "... fertig";
if [ ! -e /tmp/hosts.gz ]; then
echo -e "\nFatal: host.gz konnte nicht geladen werden. Abbruch!";
exit 1;
fi
if [ -e /etc/hosts.local ]; then
echo -n "Erzeuge neue hosts-Datei aus vorhandener hosts.local und heruntergeladenen Daten.";
cat /etc/hosts.local > /etc/hosts && gzip -dc /tmp/hosts.gz >> /etc/hosts && rm /tmp/hosts.gz && echo "... fertig";
else
echo -n "/etc/hosts.local nicht vorhanden. Erzeuge neue hosts-Datei aus heruntergeladener Datei.";
gzip -dc /tmp/hosts.gz >> hosts && rm /tmp/hosts.gz && echo "... fertig";
fi
chmod 644 /etc/hosts
zeilen=wc -l /etc/hosts | cut -d \ -f1
;
echo "Fertig! Die neue Datei "/etc/hosts" hat $zeilen Zeilen.";
echo -e "\n";
read -p 'Datei [e]ditieren, [a]nzeigen oder fertig? ' -n1 wastun;
if [ "$wastun" = "e" ]; then
vi /etc/hosts;
else
if [ "$wastun" = "a" ]; then
less /etc/hosts;
fi
fi
echo;
exit;
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hallo fastix,
if [ "$wastun" = "e" ]; then
vi /etc/hosts;
diese Zeile halte ich für "problematisch". vi ist sicherlich ein extrem fähiger Editor, aber alles andere als intuitiv bedienbar. Früher gab es doch eine Umgebungsvariable zum Aufruf des bevorzugten Editors. Wenn es die noch gibt, nutze bitte diese. Wenn nicht, nutze eine eigene :-)
Klar, wer das Skript nutzt, kann diese Zeile anpassen. Dennoch würde ich dies am Anfang des Skriptes tun und nicht an dieser Stelle eine Anpassung vornehmen müssen. Mir reicht im Normalfall joe (/usr/bin/joe).
Freundliche Grüße
Vinzenz
Moin!
Hallo fastix,
if [ "$wastun" = "e" ]; then
vi /etc/hosts;diese Zeile halte ich für "problematisch". vi ist sicherlich ein extrem fähiger Editor, aber alles andere als intuitiv bedienbar. Früher gab es doch eine Umgebungsvariable zum Aufruf des bevorzugten Editors. Wenn es die noch gibt, nutze bitte diese. Wenn nicht, nutze eine eigene :-)
Ok. kein Problem. Eine eigene Variable brauchts aber nicht :)
if [ "$wastun" = "e" ]; then
if [ -z $EDITOR ]; then
if [ -x /usr/bin/vim ]; then
/usr/bin/vim /etc/hosts;
else
vi /etc/hosts;
fi
else
$EDITOR /etc/hosts
fi
...
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®