Soundcloud

Habe vor einigen Tagen die SoundCloud entdeckt. Dies ist eine Art Facebook/Twitter für Musiker. Dort Teilen Musiker ihre Kompositionen oder Mixe, diese kann man Kostenlos anhören teilweise Herunterladen.

http://www.soundcloud.com

Veröffentlicht unter Allgemein | Schreib einen Kommentar

OpenVZ, Console eines Containers mitlesen

Hi,
ich habe mir eine kleine OpenVZ-Landschaft mit einigen Containern erstellt. Auf ein Problem was ich stoß, war das es nicht möglich war den Startvorgang der einzelnen Container mitzulesen.

Es wäre sehr Hilfreich genauso wie bei normalen Linux-Desktops den Startvorgang anzusehen zwecks Informationen und Fehlerkorrektur.

Habe bisschen rumgegoogelt jedoch keine für mich passende Lösung gefunden:

  • http://openvz.livejournal.com/40599.html fügt “vzctl” den befehl “console” hinzu und ermöglicht es so die Konsole anzusehen, dies erfordert jedoch den Kernel neu zu kompilieren, da diese Erweiterung meines Wissens noch nicht für Debian zur Verfügung steht, müsste ich bei jedem Update von OpenVZ/Kernel neu kompilieren.
  • http://forum.openvz.org/index.php?t=msg&goto=37085 die Ausgabe der Konsole auf ein tty Bildschirm oder serielles Gerät umleiten, bringt mir nicht viel denn der Server steht sonst wo im RZ 😉

Da aber die Start-Ausgaben der einzelnen CTs auf /dev/console gehen habe ich mir ein kleines Programm geschrieben welches die Ausgaben abfängt und in einem “linux cmd screen” zur Verfügung stellt.

Statt der device-file “crw——- 1 root root 5, 1 /dev/console”, verwende ich hier eine named pipe(linux cmd mkfifo).
Die CT schreibt in die pipe und das Programm ließt die pipe aus und stellt diese im “screen” dar.
Folgende modifikationen sind dazu Nötig die /dev/console muss verschoben/gelöscht werden, die /etc/vz/conf/vps.mount angepasst werden:

if [ -p /var/lib/vz/private/$VEID/dev/console ]
then
    rm /var/lib/vz/private/$VEID/dev/console
fi

if [ ! -a /var/lib/vz/private/$VEID/dev/console ]
then
    mkfifo /var/lib/vz/private/$VEID/dev/console --mode=0600
    screen -dmS console$VEID /bin/vzlog /var/lib/vz/private/$VEID/dev/console /var/lib/vz/private/$VEID/dev/console.pid
fi

und die /etc/vz/conf/vps.umount:

if [ -a /var/lib/vz/private/$VEID/dev/console.pid ]
then
    kill $(cat /var/lib/vz/private/$VEID/dev/console.pid)
    rm /var/lib/vz/private/$VEID/dev/console.pid
fi

man benötigt noch den “screen manager with VT100/ANSI terminal emulation” debian:

apt-get install screen

dann kopiert man noch vzlog nach /bin/vzlog und macht es ausführbar.
wenn ihr die Datei selber compilieren wollt:

gcc -static -o vzlog vzlog.c

Wenn ihr euch nun die einzelnen Consolen nach dem Start der CT aufrufen möchtet könnt ihr dies über (statt [VEID] natürlich die jeweilige ID des Containers):

screen -r console[VEID]


Source: vzlog.c
Binary: vzlog
Ref: http://forum.openvz.org/index.php?t=msg&th=11378

Veröffentlicht unter Allgemein, OpenVZ | Verschlagwortet mit | Schreib einen Kommentar