Schlagwort-Archiv: Terminal

Lernhilfe für LPI 101

Soeben bin ich über meine alten Notizen zur Vorbereitung auf LPIC 101 gestossen.
Darin sind neben einer Zusammenfassung von (fast) allen benötigten Befehlen, auch noch jeweils ein paar Sätze zu jedem größeren Thema enthalten.
Vielleicht kann das 35-Seitige Dokument ja auch noch jemand anderem zum erfolgreichen Bestehen der LPI 101 Prüfung helfen :)

Anmerkung: Es handelt sich hier nicht um Braindumps, sondern um eine Zusammenfassung der Materie!!

^M am Ende jeder Zeile

Soeben habe ich ein paar Anpassungen in einem File einer Internetplattform vorgenommen.
Als ich die Daten dann mit VI auf der Konsole geöffnet hatte, stand an jedem Ende einer Zeile ein ^M.
Dies kommt daher, dass die Datei unter Windows geschrieben wurde und dadurch ein anderes Fileformat enthält. Dadurch bildet VI jeden Zeilenumbruch durch ein ^M ab.
Wer häufig zwischen den beiden Welten Linux und Windows unterwegs ist, der hat sicher schon oft festgestellt, dass eine unter Linux verfasste Textdatei unter Windows plötzlich keine Zeilenumbrüche mehr hat.

Zuerst habe ich versucht, dieses Überbleibsel der Windows-Welt direkt in VI selbst zu ersetzen:

1
%s/\^M//g

Dies funktionierte leider nicht, wäre ja auch zu schön gewesen.
VI sucht mit diesem Kommando nach den Zeichen ^ und M. Leider ist der Zeilenumbruch aber nur abgebildet als ^M, nicht aber auch als solches abgespeichert, wodurch VI nie etwas finden wird.

Die Lösung schlussendlich war zwar nicht ganz so komfortabel wie direkt per VI, hat aber ihren Zweck voll und ganz erfüllt:

1
perl -p -e 's/\r$//' < windowsdatei > linuxdatei

Natürlich funktioniert das ganze auch für alle Verräter der Linuxwelt (kein Flame, nur Spass) ;)

1
perl -p -e 's/\n/\r\n/' < linudatei > windowsdatei

Tipps für ESXi

In letzter Zeit habe ich mich sehr oft mit ESXi beschäftigt. Dabei bin ich über ein zwei sehr hilfreiche Tipps gestolpert.

Einer der besten Tipps ist der SSH-Zugriff. Dieser ist zwar nicht offiziell unterstützt, ist aber eine in ESXi integrierte Funktion, es sind also keine weiteren Installationen nötig.

Um SSH zu aktivieren muss man zuerst in eine Konsole wechseln. Dies geht wie unter Linux mit ALT + F1. Im Gegensatz zu einem normalen Linux ist hier nur eine Konsole aktiv und nicht alle 6.

Nun folgt der schwierigste Part :)

Man muss blind und ohne Rückmeldung das Wort “unsupported” und das eigene Passwort eintippen.

Ab nun hat man eine normale Konsole:

~ #

Nun muss man in der inetd.conf SSH aktivieren. Dazu öffnet man diese in einem Editor,

vi /etc/inetd.conf

suchen den Eintrag

#ssh

und entfernt die Rauten wodurch bei der Zeile der Kommentar entfällt. Nun heisst es den physikalischen Server neustarten und man kann von nun an per SSH zugreifen.

Nun kann man sich per SSH alle VM’s ausgeben lassen,

vim-cmd vmsvc/getallvms

einzelne VM’s starten

vim-cmd vmsvc/power.on ID

oder den aktuellen Status abfragen.

vim-cmd vmsvc/power.getstate ID

Es gibt sicher noch unzählige mehr, aber ich denke das sind mal die wichtigsten :)

Einen weiteren Tipp, ist die Möglichkeit mehrere VMs automatisch mit dem Serverstart zu starten. Für mich ist diese Funktion sehr nützlich da ich meinen Server per WOL boote, wenn ich ihn brauche.


Zeit macht misstrauisch

Jeder mehr oder weniger geübte Linuxuser kennt dd. Disk Dump ist ideal um eine komplette Festplatte zu backupen. dd ist unter so ziemlich jeder Distribution verfügbar und wird mit folgendem Befehl gestartet:

sudo dd if=Festplatte of=Zielort

Ein Problem von dd jedoch ist, wenn man ein Image von einer 500GB Platte erstellt, dann braucht man Zeit, viel Zeit. Und während dem Kopieren hat man keine Ahnung wie weit der Vorgang ist, geschweige denn ob dd überhaupt noch arbeitet oder sich irgendwo aufgehängt hat.

Um dem entgegenzuwirken hat man Programme wie dd_rescue entwickelt, welche zwar die gleichen Funktionen aufweisen wie dd, jedoch aber benutzerfreundlicher sind (zb. eben mit Rückmeldung des Status).

Doch wieso sollte ich ein weiteres Programm auf meiner Kiste installieren, wo doch schon ein anderes mit der selben Funktion vorhanden ist?

Also habe ich nach einer Lösung gegoogelt, womit man dd zu einer Statusanzeige zwingen kann. Und wie sich herausstellte bin ich mit meinem Problem nicht allein (Zumindest Google lässt mich dies glauben :) ).

google

Die vielversprechenste Lösung habe ich in einem Kommentar in einem anderen Blog gefunden:

Die Lösung mit

pkill -USR1 dd

ist ideal, wenn man sich die Frage nach der Restlaufzeit zu stellen beginnt, nachdem dd schon eine Stunde lang gewerkelt hat.

Weiss man von Anfang an, dass es länger dauert, dann empfiehlt sich ein Weg, der ohne weitere Konsole auskommt. Man bewerkstelligt dies, indem man das Wachsen des Ausgabeziels mit dem “watch”-Kommando überwacht.

Dies kann z.B. erreicht werden, indem “watch” mit “du” oder “ls” kombiniert wird.

dd if=/dev/input of=/home/user/output.img & watch --interval=1 "du -h /home/user/output.img" 

Intervall gibt die Zeitspanne zwischen den Aktualisierungen in Sekunden an.
Der Zuwachs läßt sich noch leichter verfolgen, wenn man “–differences” einbaut:

dd if=/dev/input of=/home/user/output.img & watch –differences –interval=1 “du -h /home/user/output.img”

Dann nämlich werden jeweils die Zeichen invertiert dargestellt, die sich gegenüber der vorherigen Aktualisierung geändert haben. So bekommt man sehr intuitiv einen Eindruck davon, wie schnell der Transfer vonstatten geht – ohne überschlägiges Kopfrechnen.

Es ist wahrscheindlich nicht die beste Lösung, doch weiss man dann endlich wie weit dd ist.

Dank JubJub bin ich noch auf eine fast bessere Lösung gestossen:

eine weiter gute Möglichtkeit für eine Statusanzeige ist, wie ich finde, “pv”. Ganz einfach den dd output durchschleifen und man hatt eine schöne Anzeige; wenn mann die Größe der Festplatte noch mit angibt sogar mit Fortschrittsbalken und ETA:

dd if=/dev/input | pv -s GRÖßE > /home/user/output.img

pv muss dazu natürlich installiert sein

Vielen Dank an JubJub für den super Tipp!