Archive for the ‘Linux’ Category

Wieder ein Grund mehr…

Gestern habe ich mein altes Motherboard gegen ein Neues ausgetauscht und gleichzeitig noch die Grafikkarte gewechselt. Danach wieder alle Platten ran gestöpselt und den Rechner hochgefahren – und ich konnte sofort da weiter machen, wo ich aufgehört hatte – ohne lästige Treiberinstallationen bzw. Neuaktivierungen  o.ä. durchführen zu müssen. Wieder ein Grund mehr, warum ich Linux schätze.

Datei-Sortierung nach Datenrettung mit photorec

Nachdem ich letztens Daten mit photorec gerettet habe, hatte ich das Problem, dass die Dateien alle unsortiert in verschiedenen Ordnern lagen. Damit man die Daten wenigstens nach Dateitypen sortiert hat, habe ich ein kleines Script geschrieben, welches genau das macht, d.h. die Dateien nach Dateitypen sortiert und in einem entsprechenden Ordner speichert. Dem Script werden zwei Parameter übergeben, einmal für den Pfad zum BackUp-Ordner und einmal für den Dateityp.

sortierung -p Pfad zum Backup-Ordner -t Typ

Das Script kann man sich hier herunterladen. Vor der Benutzung natürlich noch ausführbar machen.

chmod +x sortierung

Dattenrettung mit photorec

In meinem letzen Beitrag zum Thema „Datenrettung“ habe ich über das Tool foremost berichtet. Aber es gibt weit mehr Tools als nur dieses, so z.B. gibt es noch scalpel, welches ähnlich wie foremost arbeitet. Ein weiteres Werkzeug, welches ich heute vorstellen will, nennt sich photorec. Es befindet sich im Paket testdisk. Zuerst muss man also mit

sudo apt-get install testdisk

das Paket installieren. Wie schon foremost kann auch photorec sowohl mit Image-Dateien als auch mit physikalischen Laufwerken umgehen. Wie man photorec benutzt ist am besten in dieser Schritt-für-Schritt Anleitung beschrieben. Die Dateien werden in dann in einen frei wählbaren Ordner extrahiert. Danach sind die Daten ziemlich durcheinander.

Wenn ich meine Erfahrungen zwischen foremost und photorec vergleiche, dann ist in meinem Anwendungsfall (Dattenrettung einer 500GB Platte) photorec auf jedenfall besser geeignet. Von den verlorenen Daten hat es wesentlich mehr Daten wiederhergestellt als foremost.

Die Zeitangabe stimmt nicht ganz...

Die Zeitangabe stimmt nicht ganz...

Der eigene Pastebin

Es gibt ja genug Pastebin-Anbieter im Netz, doch natürlich kann man auch seinen eigenen Pastebin aufsetzten. Der Pastebin-Dienst pastebin.com stellt hier ein PHP-Script zur Verfügung, mit welchem man seinen eigenen Pastebin betreiben kann. Das Skript muss entsprechend der eigenen Konfiguration noch angepasst werden. Das Skript kann die Daten entweder in Dateien oder in einer MySQL-Datenbank ablegen.

Quelle: http://seeseekey.net/blog/archives/321-Pastebin-zum-Selbermachen.html

Fernwartung mit NX (II) – Update

Nach einem Tipp in den Kommentaren zu meinem letzen Eintrag habe ich das Script entsprechend angepasst. Jetzt kann man einfach dem Script die benötigten Paramter übergeben und braucht es nicht mehr von Hand anzupassen.

Folgende Parameter müssen dem Script übergeben werden:

  • p – Port des fremden SSH Servers (also nicht der eigene), standardmäßig auf Port 22 gesetzt, optional
  • u – Benutzername
  • h – Host des SSH Servers

Zu finden ist das überarbeitete Script hier.

Zur Anregung habe ich das Script von hier genutzt.

Fernwartung mit NX

Vor einiger Zeit hatte ich schon einmal über den NX Server und die Möglichkeit des SSH Doppeltunnels berichtet. Da ich in letzter Zeit immer wieder mal bei Freunden Hilfestellung in Sachen Ubuntu gegeben habe, habe ich ein kleines Script geschrieben, welches überprüft, ob ein SSH- und ein NX-Server installiert sind und gleich eine Verbindung zu einem vorher konfigurierten Rechner aufbaut. Nun kann man sich einfach mit einer Konsole bzw. einem NX Client verbinden und den nötigen Support erteilen. Dies sieht dann z.B. so aus:

ssh -p 2022 benutzer@localhost

Natürlich kann man sich auch direkt auf den SSH Server des „Hilfesuchenden“ verbinden, doch mit Hilfe eines SSH Doppeltunnels braucht er/sie sich nicht um irgendwelche Porteinstellungen am Router kümmern. Weiterhin kann man damit auch abgeschottete Rechner erreichen,  die die Außenwelt nur über Port 80 oder 443 erreichen (in diesem Fall sollte man den eigenen SSH Server z.B. auf Port 443 laufen lassen).

Hier das Script:

#!/bin/bash
#SSH installiert?
echo "Überprüfe, ob SSH Server installiert ist..."
tester=`dpkg -l | grep openssh-server`
if [[ "$tester" =~ "openssh-server" ]]
then
  echo "SSH Server ist installiert."
else
  echo "SSH Server wird installiert. Wird installiert..."
  sudo apt-get install openssh-server
fi

#NX installiert?
echo "Überprüfe, ob NX Server installiert ist..."
tester=`dpkg -l | grep nxserver`
if [[ "$tester" =~ "nxserver" ]]
then
  echo "NX Server ist installiert."
else
  echo "NX Server wird installiert"
  wget http://64.34.161.181/download/3.3.0/Linux/nxclient_3.3.0-6_i386.deb
  wget http://64.34.161.181/download/3.3.0/Linux/nxnode_3.3.0-12_i386.deb
  wget http://64.34.161.181/download/3.3.0/Linux/FE/nxserver_3.3.0-15_i386.deb
  sudo dpkg -i nxclient_3.3.0-6_i386.deb
  sudo dpkg -i nxnode_3.3.0-12_i386.deb
  sudo dpkg -i nxserver_3.3.0-15_i386.deb
fi

#SSH Tunnel aufbauen
#Port, Benutzer und Rechner anpassen!
ssh -p 123 benutzer@deinRechner -R 2022:localhost:22

Und hier im pastebin.

Dies ist eines meiner ersten Scripte und ich freue mich über Verbesserungsvorschläge.

LaTeX: Tabellen (II) und anderes

Im meinem letzten Beitrag zu diesem Thema habe ich ein paar Sachen aufgeschrieben, welche mir im Umgang mit Tabellen begegnet sind. Heute will ich diese Reihe fortsetzen und nicht nur auf Tabellen eingehen.

Der Tabellenkopf

Ein wesentlicher Bestandteil einer Tabelle ist der Tabellenkopf und dementsprechend trägt er auch zur Übersichtlichkeit der Tabelle bei. In meinem letzten Post  habe ich den Einsatz von \cmidrule kurz vorgstellt, um den Tabellenkopf vom Tabelleninhalt optisch schön abzugrenzen. Wenn man einen langen Spaltentitel hat lohnt es sich diesen umzubrechen. Dies kann man mit der Angabe einer Tabellenbreite in der Tabellendefinition machen:

\begin{tabular}{cp{2cm}c}
...
\end{tabular}

Die zweite Spalte hat dann eine festdefinierte Breite von 2cm, d.h. wenn der Spaltentitel länger als 2cm ist, wird er umgebrochen.

Nun möchte man aber seinen Titel gleichzeitig vielleicht noch fett, zentriert und in einer kleineren Schrift darstellen. Diese ganzen Formatierungen kann man sicher alle mit in die tabular-Umgebung aufnehmen, aber es bietet sich an einen neuen Spaltentyp zu definieren. Das ganze sieht dann z.B. so aus:

\newcolumntype{C}[1]{>{...}p{#1}}

Man legt damit einen neuen Spaltentyp an (mit Namen C) welchem ein Parameter übergeben wird, nämlich p{} für die Spaltenbreite. In die {…} kann man nun seine ganzen Formatierungswünsche packen. Ergebnis:

\newcolumntype{C}[1]{>{\centering\arraybackslash\scriptsize\bfseries}p{#1}}

Mit Hilfe von \multicolumn kann nun der neue Spaltentyp verwendet werden.

\multicolumn{1}{C{2cm}{BlaBla}

Auf diese Art und Weise kann man schnell und einfach neue Typen definieren – für jeden Anwendungszweck.

Das obige Beispiel im Bild:

spaltentyp

Fußnotennummerierung in scrreprt

Ein weiteres Problem auf das ich gestoßen bin, ist, dass die Nummerierung der Fußnoten in scrreprt in jedem \chapter neu anfängt. Um dies zu unterbinden fügt man zu Beginn des Dokumentes folgende Zeile ein:

\counterwithout{footnote}{chapter}

Das war mal wieder eine kurze Zusammenfassung von zwei Sachen, mit welchen ich mich in letzter Zeit beschäftige. Ich freue mich über Anregungen in den Kommentaren. So lange stecke ich ja noch nicht in der Materie drin.

Datenrettung mit foremost

In den letzten Tagen hatte ich es mit einem Datenträger zu tun, dessen Partitionstabelle überschrieben worden war. Eine Analyse mit testdisk hat zwar ergeben, dass die alte Partitionstabelle zwar noch erkannt wurde, aber es leider keine Möglichkeit gab, diese wiederherzustellen bzw. auf die Dateien der alten Partition zuzugreifen. Darauf habe ich mich nach verschiedenen Tools umgeschaut und bin auf foremost gestoßen.

Foremost ist ein Konsolenprogramm zur Wiederherstellung von Daten anhand der Headers, Footers und interen Datenstrukturen. Ursprünglich von der Air Force Office of Special Investigations und The Center for Information Systems Security Studies and Research entwickelt, wurde es der Allgemeinheit zur Verfügung gestellt.

Bevor man jedoch foremost einsetzt, sollte man unbedingt eine 1:1 Kopie seines (kaputten) Datenträgers machen, um weiteren Verlust vorzubeugen. Ein Image kann z.B. mit dd oder dd_rescue erstellt werden.

Das Programm befindet sich in den Paketquellen von Ubuntu und kann mit

sudo apt-get install foremost

installiert werden. Nach der Installation befindet sich eine Konfigurationsdatei in /etc/foremost.conf. Diese Datei enthält Informationen über die verschiedenen Dateitypen. Nach der Installation sind alle Dateitypen auskommentiert. Man braucht aber nur die Dateitypen zu aktivieren die nicht den folgenden Hinweise enthalten: NOTE THIS FORMAT HAS A BUILTIN EXTRACTION FUNCTION.

Mit

sudo foremost -t all -i /pfad/zum/Datenträgerabbild

kann der Wiederherstellungsprozess beginnen. Der Parameter -t all bedeutet, dass versucht wird alle Dateitypen wiederherzustellen. Die gesicherten Dateien werden im Ordner output des aktuellen Verzeichnisses gespeichert, welcher wiederum für jeden Dateitypen einen Unterordner enthält.

Mit diesem Tool konnte ich einen Großteil der Daten wiederherstellen, wenn auch nicht alle.

LaTeX: Tabellen (I)

Wie schon letztens geschrieben, beschäftige ich mich im Rahmen meiner Examensarbeit näher mit LaTeX. Eine Sache hat mir dabei besonders viel Einarbeitungszeit abgerungen: Tabellen. Deswegen möchte ich die Sachen, auf die ich so gestoßen bin, mal in mehreren Teilen festhalten.

Eine Tabelle kann ja erstmal folgendermaßen aufgebaut sein:

\begin{table}
\begin{tabular}{ccc}
   Zahl 1 & Zahl 2 & Zahl 3\\
   1 & 2 & 3\\
   4 & 5 & 6\\
\end{tabular}
\end{table}

Und das Ergebnis:

tabelle1

Linien

Für Tabellen gelten ein paar typographische Regeln:

  • Keine vertikalen Linien setzen,
  • Keine Doppellinien setzen.

Nun gibt es verschiedene Möglichkeiten eine Tabelle schöner zu gestalten. Dafür eignet sich z.B. das Paket booktabs. Mit

\usepackage{booktabs}

bindet man es ein.

Mit \toprule, \midrule und \bottomrule hat man Linien verschiedener Stärke zur Verfügung. Ergänzt man das obige Beispiel mit diesen Linien zieht es folgendermaßen aus:

\begin{table}
\begin{tabular}{ccc}
   \toprule
   Zahl 1 & Zahl 2 & Zahl 3\\
   \midrule
   1 & 2 & 3\\
   4 & 5 & 6\\
   \bottomrule
\end{tabular}
\end{table}

Ergebnis:
tabelle2

Mit \cmidrule kann man die Tabelle noch übersichtlicher gestalten. Unsere Tabelle sieht nun so aus:

\begin{table}
\begin{tabular}{ccc}
   \toprule
   Zahl 1 & Zahl 2 & Zahl 3\\
   \cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(l){3-3}
   1 & 2 & 3\\
   4 & 5 & 6\\
   \bottomrule
\end{tabular}
\end{table}

Ergebnis:
tabelle3

\cmidrule(r){1-1} bedeutet, dass eine Linie von der ersten Spalte zur ersten Spalte gezogen wird. Das (r) bewirkt, dass auf der rechten Seite der Spalte ein Freiraum gelassen wird. (lr) heißt also dann, dass sowohl links und rechts Platz gelassen wird. Würde man die den Parameter in den „normalen Klammern ()“ weglassen, hätte man eine normale durchgezogene Linie, also das gleiche Ergebnis wie mit \midrule.

Wer sich noch näher mit der Formatierung von Tabellen beschäftigen will, dem sei diese PDF empfohlen.

ISO Image von CD/DVD erstellen

Heute stand ich vor dem Problem, dass ich möglichst einfach ein ISO-Abbild von einer DVD erstellen wollte. Nach einer kurzen Suche bin ich auf einen einfachen Weg gestoßen, welcher mir ohne große Probleme ein solches Abbild erstellt. Man öffnet einfach einen Terminal und gibt ein:

dd if=/dev/cdrom of=/home/user/iso.iso

Die Pfade sind dann natürlich noch entsprechend anzupassen. Mit diesem kurzen Befehl kann ich jetzt also schnell und einfach ein ISO-Image erstellen.