15.12.2010

Soljanka a la fastix

Vorwort: Das Rezept ist nicht feststehend. Statt des Sauerkrauteintopfes geht nat├╝rlich auch etwas Sauerkraut, es muss dann lediglich l├Ąnger gebraten werden. Auch saure Gurken kann man mit kochen. Bohnen statt Erbsen- es sei so! Die Phantasie ist hier frei. Grundrichtung ist ein fettiger, leckerer, scharf-saurer Eintopf mit starker Paprika-Note, der mit einer "Di├Ąt" (im Sinne von Abnehmen) absolut nichts zu tun hat. Nur Kartoffeln haben darin absolut nichts zu suchen.

Das Ursprungsland dieses S├╝ppchens ist Russland. Im ehemals ostzonalen Deutschland ist das Rezept aus der Besatzungszeit bekannt und tradiert. Die Soljanka wurde dort als Vorspeise wie auch als Hauptspeise angeboten und war gern genossener Bestandteil des Angebotes in der Gastronomie und in den Betriebsk├╝chen. Im Westen Deutschland war dieses leckere Essen weitgehend unbekannt. Dort hat man wirklich was verpasst wie sich bei Essen zeigen wird.

Zutaten / Ben├Âtigtes f├╝r 1 - 8 Personen :-)
  • 3-Liter-Topf
  • 1/2 Liter Sauerkrauteintopf (Kapustov├í polievka), nicht zu fl├╝ssig
  • 250 Gramm Salami
  • 100 gr. gew├╝rfelten Speck
  • 100 gr. Schweineschmalz
  • 4 Bockw├╝rste (Keine Bockw├╝rstchen, sonst halt mehr.)
  • Pflanzen├Âl (Sonnenblumen├Âl) nach Bedarf
  • 2 Zwiebeln
  • 1 Dose Erbsen
  • Pilze (z.B. Champignons aus dem Glas)
  • 2 Dosen gehackte Tomaten (oder 6 Frische)
  • 2 Gl├Ąser mit eingelegtem roten Paprika (je ca. 300-350 gr. Abtropfgewicht)
  • Peperoni nach eigenem Gustus und Sch├Ąrfe
  • 1 Becher saure Sahne
  • 1 bis 2 Zitronen
Manchen muss man ja erkl├Ąren, was man mit diesen Zutaten macht:

Salami, Speck, Zwiebeln, Bockw├╝rste gehackt, gescheibelt oder nach eigenem Gustus zerkleinert in den Topf und mit etwas ├ľl gut anbraten - nicht zu viel naschen.
Wenn die Tomaten frisch sind, diese gesch├Ąlt, gew├╝rfelt oder gehackt jetzt zugeben. Kurz abwarten. Dann den Rest der Kapustov├í zugeben, gut durchr├╝hren, weiter etwas anbraten.
Ggf. die Tomaten aus der Dose jetzt zugeben.

Pilze, Erbsen, Paprika (den mit der Fl├╝ssigkeit aus dem Glas), Peperoni (Falls aus dem Glas auch mit Fl├╝ssigkeit) dazu geben. Salz nur bei Bedarf, weil einige der Zutaten schon sehr viel Salz enthalten ist es zumeist nicht n├Âtig.

Wird das Rezept mit Gurken gemacht, diese ebenfalls gew├╝rfelt mit zugeben, dann statt der Br├╝he aus den Paprika-Gl├Ąsern diese oder eine Mischung zugeben.

Ca. 20 Minuten kochen, ├╝ber Nacht stehen/ziehen lassen. Kein Wasser zugeben! Dies ist eine dicke Suppe. Die Soljanka unter keinen Umst├Ąnden p├╝rieren sondern st├╝ckig lassen.

Zum Servieren wieder bis zum Kochpunkt erhitzen, auf dem Teller nach eigenem Gustus mit je 1-4 Essl├Âffel saurer Sahne verfeinern und Zitrone dar├╝ber tr├Ąufeln. Manche m├Âgen helles Brot oder frische Br├Âtchen dazu.

Zwischen den Mahlzeiten k├╝hl stellen, ggf. nur die Portion erw├Ąrmen, die man zu essen gedenkt.

Wer unbedingt Alkohol dazu trinken muss:

Trockener Rotwein oder ein herbes Bier.

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...)


Einige Plugins, (zu) oft das propriet├Ąre Adobe-Flash-Player-Plugin, sorgen daf├╝r, dass der Firefox unter Linux stehen bleibt.

Da hilft der Hammer.

Bei einem Neustart versucht der Firefox geladene Fenster und die darin gezeigten Webseiten wieder herzustellen.

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:
while ! wget http://example.org/; do sleep 600; done
Da 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/;
do sleep 600;
done
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.
while ! wget -c http://example.org/ 1> /dev/null 2> /dev/null;
do sleep 600;
done
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 -O
while ! wget -cO /tmp/example.org_index \
http://example.org/ 1> /dev/null 2> /dev/null;
do sleep 600;
done
Verwendung als Batch-Datei: (hole_url, am besten in ~/bin/hole_url):
#! /bin/sh
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;

Letzte Aufgabe: bestimmter Zeitpunkt:

Ist der at-Dienst aktiv (feststellbar mit ps -C atd) kann nat├╝rlich mit
echo "hole_url http://example.org/" | at 0400
auch 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

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...
cd /
sudo du -xm | sort -n | tail -n5
brachte mich ganz schnell zum Verzeichnis /var/log
cd /var/log
ls -l
mit dem ├ťbelt├Ąter zypper.log-20100203.
sudo rm zypper.log-20100203
Das schuf mal eben reichlich 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.11 ist auf dem System.

04.01.2010

About: Frickelware Windows 7

Man braucht nur eine Windows-Installation, ein paar freie Tools zur Herstellung bootbarer CDs oder DVDs, muss dann ein wenig in der Registry der neuen Windowsinstallation herumpfuschen, ein paar Mal neu starten, seltsame Tastenkombinationen bem├╝hen und ganz zum Schluss den Registrierungsschl├╝ssel eingeben (falls der Rechner schon eine Internetverbindung hat...)

Das nenn ich ein sauberes Freakup!

Besitzer von XP oder Vista d├╝rfen Windows 7 als Upgrade-Lizenz erwerben, als Student oder im Dreierpack sogar besonders g├╝nstig. Dass sich damit trotz des Namens oft keine bestehende Windows-Installation aktualisieren l├Ąsst, war bereits bekannt, nicht aber, dass nicht einmal eine saubere Neuinstallation vorgesehen ist. Mit einem Trick klappts trotzdem.

Quelle: heise-online - Der Upgrade-Trick: Upgrade-Lizenzen von Windows 7 sauber neu installieren