Archive for the ‘HowTo’ Category

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
Advertisements

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

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.

„Web2.0“-Effekt mit GIMP

Gerade eben bin ich auf ein nettes Plugin für GIMP gestoßen. Das Plugin macht eigentlich nichts weiter, als das Bild um 45° zu drehen und noch ein paar Effekte hinzuzufügen.

Um das ganze auszuprobieren, muss man sich das Script herunterladen und als „mericet-makeweb20.scm“ im Ordner

~/.gimp-2.6/scripts

bzw.

/usr/share/gimp/2.0/scripts

speichern. Danach GIMP starten und im Filter-Menü unter Script-Fu die Skripte auffrischen. Das Plugin sollte nun im Filter-Menü auftauchen (unter Mericet).

Das Logo aus dem letzten Beitrag sieht nun folgendermaßen aus:

logoeffekt

Schöne Icons mit Inkscape

Heute will ich kurz zeigen, wie man mit ein paar Schritten schöne Icons mit Inkscape gestalten kann.

Zuerst öffnet man Inkscape und zeichnet z.B. einen Kreis. Man kann natürlich auch eine andere Form nehmen. Als nächstes dupliziert man den Kreis (mit Strg+D) und verschiebt ihn an eine andere Stelle. Bei gedrückter Strg-Taste bleibt die horizontale bzw. vertikale Ausrichtung gleich.

2kreise1

Nun bearbeitet man den zweiten Kreis so mit dem Pfadwerkzeug (Umschalt+F6), dass ein Bogen entsteht. Der Bogen ist das Wichtige. Ansonsten muss der Pfad noch geschlossen werden, d.h. am Anfangspunkt wieder enden.

pfadkreis2

Dann markiert man den Kreis und den Pfad (Umschalt gedrückt halten) und wählt im Pfad-Menü Intersektion aus. Das „Reststück“ wird nun weiß eingefärbt und wieder zurück über den ersten Kreis geschoben.

einweisen1

Der nächste Schritt besteht in der Anpassung der Deckkraft. Um einen „Glaseffekt“ hinzu bekommen, empfiehlt sich eine Deckkraft zw. 20% und 30% – je nach Geschmack.

Auf dem Kreis braucht man jetzt nur noch ein Symbol oder Text einfügen. Dabei sollte man darauf achten, dass die Symbol bzw. Textebene zwischen den „Kreisen“ liegt. Jetzt ist man eigentlich schon fertig, doch man kann dem Icon noch ein wenig Unschärfe am Rand hinzufügen. Dazu passt man die Unschärfe bei dem ersten Kreis an.

unscharfe2

So…das war es dann aber auch schon. Fertig ist das Icon!

logofertig1

Im Wiki-Artikel findet man noch viele weitere Links zu Tutorials, die einen Blick wert sind.

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.

Drucker zu OpenOffice.org hinzufügen

Da ich jedesmal neu überlege wie ich einen Drucker zu OpenOffice.org hinzufüge, schreibe ich es hier mal auf, damit ich es nicht wieder vergesse. Ich verwende z.B. GtkLP (in den Paketquellen zu finden) und möchte dies gern als neuen Drucker hinzufügen.

Man muss nur in den Ordner /usr/lib/openoffice/program/ wechseln und dort mit ./spadmin die Druckerverwaltung ausführen. (alternativ:
sh /usr/lib/openoffice/program/spadmin).
Darauf öffnet sich ein Dialog, wo man seinen neuen Drucker einrichten kann. GtkLP richte ich als PDF Drucker mit dem Befehl ‚gtklp‘ ein.