21.02.2010
SSH-Authentifizierung durch Schlüsseldatei
Ich habe eine kleine Anleitung (hier als PDF) geschrieben, wie man einen SSH-Server so betreibt, dass die Authentifizierung nicht mehr mit mit Benutzer:Passwort sondern mit Public-Key und Privat-Key funktioniert.
18.02.2010
killall firefox;killall npviewer.bin (Firefox hängt...)
13.02.2010
Über den richtigen Umgang mit wget
Aufgabe: Nächtliches Abholen einer großen Datei von einem Webserver.
Problem: Der Webserver hustet, die DSL-Leitung möchte gerade nicht - also alle möglichen Arten von Störungen. Wer will daneben sitzen bleiben?
Ein einfaches wget [URL] kam nicht in Betracht... Lösung: Man baue wget in eine Schleife ein. Diese überprüfe den Rückgabewert, warte im Falle eines (beliebigen) Fehlers und versuche das ganze erneut:
Ist der at-Dienst aktiv (feststellbar mit
Problem: Der Webserver hustet, die DSL-Leitung möchte gerade nicht - also alle möglichen Arten von Störungen. Wer will daneben sitzen bleiben?
Ein einfaches wget [URL] kam nicht in Betracht... Lösung: Man baue wget in eine Schleife ein. Diese überprüfe den Rückgabewert, warte im Falle eines (beliebigen) Fehlers und versuche das ganze erneut:
while ! wget http://example.org/; do sleep 600; doneDa aber auch eine begonnene Übertragung abbrechen kann macht es Sinn, diese wieder aufzunehmen. Dafür gibt es die Option
-c:
while ! wget -c http://example.org/;So sieht das aus und ist, da es ein "Einzeiler" ist, auch als Cron-Job oder at-Job gut zu verwenden. Möglicherweise sollten Ausgaben noch nach /dev/null umgeleitet werden.
do sleep 600;
done
while ! wget -c http://example.org/ 1> /dev/null 2> /dev/null;Der Wert hinter sleep gibt die Anzahl der Sekunden an, die gewartet wird. Ich hielt 600, also 10 Minuten, für sinnvoll. Gelegentlich macht es Sinn, den Speicherort festzulegen. Dies besorgt die Option
do sleep 600;
done
-O
while ! wget -cO /tmp/example.org_index \Verwendung als Batch-Datei: (hole_url, am besten in ~/bin/hole_url):
http://example.org/ 1> /dev/null 2> /dev/null;
do sleep 600;
done
#! /bin/shLetzte Aufgabe: bestimmter Zeitpunkt:
echo -e "\n\n";
if ! test -n "$1"; then
echo "Fatal: Keine Quelle angegeben.
Rufen Sie das Skript mit der Angabe einer Dateiquelle auf.
Beispiel: $0 \"http://example.org/\"
Sie können auch ein Ziel angeben.
Beispiel: $0 \"http://example.org/\" \"/tmp/index\"
";
exit;
fi
username=`whoami`;
skriptname=`echo $0 | tr -d '[:cntrl:]' | tr -d './|'`;
lockfile="/tmp/$username-$skriptname-lockfile";
if ! test -f $lockfile;
then touch $lockfile;
fi
aktiv=`grep "$1" $lockfile|wc -l`;
if test "0" != "$aktiv"; then
echo "Fatal: Für die Ressorce \"$1\" besteht bereits ein Auftrag.
Wenn Sie der Auffassung sind, dass dies nicht zutreffend ist,
dann löschen Sie den Eintrag in $lockfile.
Das Programm wird mit Fehlercode 1 beendet.
";
exit 1;
fi
if test -z "$2"; then
echo $1 >> $lockfile;
while ! wget -c "$1" 1>> ~/wget.log 2>> ~/wget.log; do
sleep 600;
done
echo -e "Die Ressource \"$1\" wurde geholt und gespeichert.\n\n";
lockfileInhhalt=`grep -v "$1" $lockfile`;
echo $lockfileInhhalt > $lockfile;
exit 0;
fi
if test -x "$2"; then
echo "Fatal: Das Ziel \"$2\" existiert bereits und ist ausführbar.
Dieses Programm weigert sich aus gutem Grund ausführbare Dateien zu
überschreiben.
Das Programm wird mit Fehlercode 2 beendet.
";
exit 2;
fi
if test -f "$2" ;then
if test ! -w "$2"; then
echo "Fatal: Das Ziel \"$2\" kann nicht geschrieben werden.
Lösung: Überprüfen Sie die Rechte.
Das Programm wird mit Fehlercode 3 beendet.
";
fi
fi
if test "force" != "$3" -a "continue" != "$3"; then
if test -f $2; then
echo "Fatal: Das Ziel \"$2\" existiert bereits.
* Wenn Sie das Ziel überschreiben wollen geben sie als drittes
Argument \"force\" an.
* Wenn Sie einen abgebrochenen Download fortsetzen wollen,
geben sie als drittes Argument \"continue\" an.
Beispiel: \"$0 $1 $2 force\"
Das Programm wird mit Fehlercode 4 beendet.
";
exit 4;
fi
else
if test -f "$2" -a "force" = "$3"; then
echo "Das Ziel \"$2\" wird gelöscht.";
rm -- "$2";
fi
echo -e "Die Ressource \"$1\" wurde geholt und
als \"$2\" gespeichert.\n\n";
fi
echo $1 >> $lockfile;
while ! wget -cO "$2" "$1" 1>> ~/wget.log 2>> ~/wget.log;
do
sleep 600;
done
lockfileInhhalt=`grep -v "$1" $lockfile`;
echo $lockfileInhhalt > $lockfile;
exit 0;
Ist der at-Dienst aktiv (feststellbar mit
ps -C atd) kann natürlich mit
echo "hole_url http://example.org/" | at 0400auch am nächsten Morgen ab 4 Uhr versucht werden die Datei zu holen.
08.02.2010
Benutzerrechte: Filesystem Access-Control-List (FACL) unter Linux
Immer wieder höre ich, dass Linux bei der Vergabe von Benutzerrechten Windows nachstehe.
Der Grund hierfür ist jedoch nicht, dass Linux Benutzerrechte an Dateien nicht genau so genau vergeben kann wie Windows, der Grund ist, dass zu viele nicht wissen wie das geht. Und zugegeben: es gibt derzeit für einiges hiervon keine grafische Oberfläche.
Der Mangel an , nennen wir es „klickablen“ war es dann aber auch schon, für Administratoren dürfte schon wesentlich interessanter sein, dass sich Vorlagen für Benutzerrechte in menschen- und maschinenlesbaren Textdateien speichern und also auch verarbeiten lassen. Diese Dimension bietet Windows nicht.
Da ich damit rechnen muss das diesen Artikel auch (künftige) Systemadministratoren lesen werden die bisher nur wenig mit Linux zu tun hatten beginne ich mit einem Exkurs in die „gewöhnlichen“ Rechteverwaltung unter Unix.
Benutzerrechte_Access-Control-Lists_ACL_unter_Linux.pdf
Der Grund hierfür ist jedoch nicht, dass Linux Benutzerrechte an Dateien nicht genau so genau vergeben kann wie Windows, der Grund ist, dass zu viele nicht wissen wie das geht. Und zugegeben: es gibt derzeit für einiges hiervon keine grafische Oberfläche.
Der Mangel an , nennen wir es „klickablen“ war es dann aber auch schon, für Administratoren dürfte schon wesentlich interessanter sein, dass sich Vorlagen für Benutzerrechte in menschen- und maschinenlesbaren Textdateien speichern und also auch verarbeiten lassen. Diese Dimension bietet Windows nicht.
Da ich damit rechnen muss das diesen Artikel auch (künftige) Systemadministratoren lesen werden die bisher nur wenig mit Linux zu tun hatten beginne ich mit einem Exkurs in die „gewöhnlichen“ Rechteverwaltung unter Unix.
Benutzerrechte_Access-Control-Lists_ACL_unter_Linux.pdf
07.02.2010
SuSE-Linux / Seltsamer Fehler / Platte voll
Vor ein paar Tagen meldete mir Yast anlässlich einer Softwareinstallation (ich weiß), dass die Festplatte voll sei. Da ich System-Partition und Datenpartition (Home-Verzeichnise, srv-Verzeichnisse und dergleichen) strikt getrennt hatte wunderte mich das nicht wenig, denn die System-Partition hatte runde 40 Giga-Byte und damit reichlich Platz, temp-Verzeichnisse werden bei jedem Reboot gelöscht. (Desktop) Da sollte eigentlich nichts überlaufen.
Also: Nachsehen...
Also: Nachsehen...
cd /brachte mich
sudo du -xm | sort -n | tail -n5
ganz schnellzum Verzeichnis /var/log
cd /var/logmit dem Übeltäter
ls -l
zypper.log-20100203.
sudo rm zypper.log-20100203Das schuf
mal ebenreichlich 30 Gigabyte Platz auf der Festplatte. Wofür diese Datenmenge gebraucht wurde? Keine Ahnung, ist aber ohnehin ein Backup. OpenSuSe 11 mit
zypper 0.11.11ist auf dem System.
Abonnieren
Posts (Atom)