dd über ssh ausführen und übertragen

Geöffnete Festplatte

Wenn man ein Dump eines kompletten Datenträgers auf einem Serversystems bekommen möchte kann es sinnvoll sein dies über ssh auszuführen – also das output-File wird auf einem völlig anderen Rechner gespeichert. dd hat im einfachsten Fall den folgenden recht ungewöhnlichen Syntax:

dd if=<Inputfile> of=<Outputfile>

Dabei kann, getreu dem Unix-Motto „Alles ist eine Datei”, das Inputfile sowohl eine reguläre Datei als auch eine Gerätedatei sein. Ein Dump von sda1 nach ~/dumpfile kann also mit der Ausführung als:

dd if=/dev/sda1 of=~/dumpfile

Weiterlesen

Ein Prozess blockiert das Aushängen eines Datenträger (II) – fuser

Symbolisiertes Terminal

Im ersten Teil wurden Prozesse identifiziert die das Aushängen eines Datenträgers verhindern aber wir haben immer noch keinen Zustand in dem ein Datenträger ausgehängt werden kann. Natürlich kann man ein z.B. evtl. offenes Office-Dokument abspeichern und das Officeprogramm beenden und das empfiehlt sich auch wenn man keinen Datenverlust riskieren möchte. Aber man kann auch die Prozesse hart beenden wenn kein Datenverlust droht. So ein Beispiel wäre z.B. wenn xpdf das Aushängen verhindert.:

# lsof +f -- /media/max/4335-1CEA/
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xpdf.real 23765 max cwd DIR 8,32 16384 12180 /media/max/4335-1CEA/Download
xpdf.real 23765 max 4r REG 8,32 3262888 12533 /media/max/4335-1CEA/Download/FujiFilm F20 Bedienungsanleitung

Hier ist eine PDF-Datei von xpdf geöffnet.

Ein verwandter Befehl zu lsof ist fuser. fuser kann Prozesse identifizieren die Dateien, Verzeichnisse und Sockets verwenden. Ein einfacher Aufruf würde z.B. zu so einer Ausgabe führen:

# fuser /media/max/4335-1CEA/
/media/max/4335-1CEA: 13159c 24928c 24943c

Weiterlesen

Ein Prozess blockiert das Aushängen eines Datenträger (I) – lsof

Symbolisiertes Terminal

Viele kennen das Problem, gerade bei USB-Speichergeräten, dass ein Programm oder Prozess das Aushängen eines Datenträgers verhindert denn nur ein Gerät was nicht in Benutzung ist kann auch ausgehängt werden. Dabei ist egal ob ein Dokument oder Datei offen ist oder ob man wie im anschließenden Fall nur das Verzeichnis in das es eingehängt wurde offen hat:

# umount /dev/sdb
umount: /media/max/4335-1CEA: target is busy.

Wie ermittelt man nun den Übeltäter? Dabei können wir umständlich alle offenen Programme durchgehen oder als elegantere Variante den Befehl lsof nutzten. Wie bei allen ls-Befehlen wie lsusb, lspci oder ls steht „ls“ für list und das of steht für „open file“.

Der einfachste Aufruf wäre lsof <Gerätedatei>:

# lsof /dev/sdb
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 2157 max cwd DIR 8,16 16384 1 /media/max/4335-1CEA
bash 13159 root cwd DIR 8,16 16384 1 /media/max/4335-1CEA
lsof 14979 root cwd DIR 8,16 16384 1 /media/max/4335-1CEA
lsof 14980 root cwd DIR 8,16 16384 1 /media/max/4335-1CEA

Weiterlesen

vi und vim – eine Kommandoreferenz

Logo von vim

Unter Unix und unixoiden Betriebssystemen, zu denen auch Linux gehört, ist es oftmals nötig Textdateien zu editieren denn die Konfigurationsdateien z.B. sind, im Gegensatz zu Windows, meistens einfache Textdateien im ASCII-Format. Daher gibt es unter diesen Betriebssystemen einen ganzen Zoo an Editoren. Einer der meist genutzten Editoren ist vi bzw. seine Erweiterung vim. Der Grund ist das vi ein Editor für die Konsole ist und damit auch zu gebrauchen ist wenn die grafische Oberfläche nicht starten will aber auch seine sehr mächtigen Werkzeuge. Ein weiterer Grund ist, dass vi auf jedem POSIX-System installiert ist was in Rettungssituationen einfach notwendig ist den Editor bedienen zu können.

vi ist ein recht alter Editor der entwickelt wurde bevor es grafische Oberflächen gab und kann daher komplett mit der Tastatur bedient werden. Für Neulinge ist etwas ungewohnt, dass vi verschiedene Modi kennt. Auf vielen Linux-Distributionen ist vi ein symbolischer Link auf vim, also den verbesserten vi-Editor (vim steht für vi-improved), und es wird daher beim Aufruf von vi in Wirklichkeit vim gestartet.

Weiterlesen

Ventoy, der Multi-Bootmanager für den USB-Stick oder externe Festplatte

Schematisches Bild eines USB-Speichersticks

Viele kennen das: Man hat etliche USB-Sticks mit einem Bootimage für verschiedene Zwecke – Rettungssystem, Installationsmedien, alternative Betriebssysteme usw. Jeder USB-Stick wird separat erstellt und oft bleibt noch eine Menge Platz ungenutzt frei. Mit Ventoy wurde im April 2020 ein Open-Source-Projekt gestartet welches mithilfe eines minimalen BSD auf einem bootfähigen Image die Möglichkeit bietet sehr viele Images als .iso-Dateien auf ein externes Speichermedium zu kopieren und man erhält dadurch ein externe Multiboot-Medium.

Das Projekt findet man, zusammen mit den Downloads für Quellcode, Linux, Windows und als Live-CD, auf Github. Es werden mehr als 160 Isos auf dem Stick unterstützt. Sollte Ventoy selber veraltet sein, so kann man das einfach durch einen Mausklick aktualisieren und ein veraltetes Iso kann man durch simples Löschen des veralteten und kopieren des aktuellen Isos auf den neusten Stand bringen.

Weiterlesen

IP-Blacklist aus dem Internet per Script an iptables übergeben

Schild Zugang für Unbefugte verboten

Angriffe eines Serverdienstes ist ein lästiges Übel für einen Serverbetreiber. Diese erfolgen vermutlich durch Scripte von gekaperten Servern. Bei einem sicher konfigurierten System können diese Angriffe keinen Schaden anrichten aber sie tauchen zu Haufen in der Serverlogs auf. Es gibt Listen im Internet wo solche lästigen IP-Adressen aufgeführt sind. Mir ist aufgefallen, dass unter https://www.redim.de eine recht brauchbare Liste, die täglich aktualisiert wird, existiert die normalerweise auch meine lästigsten Kandidaten enthalten. Nun wird dort vorgeschlagen die Liste in die .htaccess-Datei zu kopieren und darüber Websites zu schützen. Leider hat dies mehrere Nachteile.

  1. Nur Websites aber nicht andere Dienste wie Email, FTP oder SSH werden geschützt.
  2. Bei dem Betreiben von mehreren Websites muss diese Liste mehrfach eingepflegt werden.
  3. Die vorgeschlagene Variante über .htaccess muss händig aktualisiert werden oder man muss ein Script dafür schreiben.

Irgendwie hat mir das nicht wirklich zugesagt und Linux bringt mit iptables ja schon ein universelles Werkzeug mit um IP-Adressen zu blocken. Um Ports muss man sich da nicht kümmern da kaum zu erwarten ist, das von einer bösartigen IP-Adresse sinnvolle Anfragen kommen.

Mit diesen Überlegungen habe ich beschlossen ein Script zu schreiben was das alles automatisiert:

Weiterlesen

Der unbekannte Befehl – Die Konsole für Dummies (Teil II)

Symbolisiertes Terminal

Im ersten Teil habe ich den grundsätzlichen Umgang mit  Befehlen und den Umgang mit Vorder- und Hintergrundprozessen geschildert. In diesem Teil soll es um die Hilfeseiten, der Vervollständigung in der Shell und der Shell-History, die Umgebungsvariable PATH, der Ausgabe von Programmen gehen und deren Umlenkungen in andere Programme und Dateien gehen. Als Letztes wird noch die Funktion von Alias und eine Reihe Bash-Shortcuts beschrieben. Der dritte Teil dieser Serie wird dann eine Reihe grundlegender Shellbefehle gehen die für einen Linuxbenutzer irgendwann essentiell sind.

Hilfeseiten

Jedes komplexere System braucht Hilfeseiten um bedienbar zu bleiben. So hat auch die Shell eine Hilfesystem. Der Aufruf einer Hilfeseite erfolgt mit dem Befehl man und daher auch der gebräuchliche Name für diese Seiten: „Manpages“. Praktisch jedes Programm für die Konsole hat eine oder mehrere dieser Seiten. Je nach Komplexität werden diese thematisch aufgeteilt. Folgende Aufzählung zeigt die thematische Unterteilung auf. Nicht jede dieser Seiten muss jedoch auch existieren.

  • Benutzerkommandos (1)
  • Systemaufruf (2)
  • Funktionen der Programmiersprache C (3)
  • Dateiformate (4)
  • Konfigurationsdateien (5)
  • Spiele (6)
  • Diverses (7)
  • Kommandos zur Systemadministration (8)
  • Kernelfunktionen (9)
  • Neue Kommandos (n)

Weiterlesen

Der unbekannte Befehl – Die Konsole für Dummies (Teil I)

Symbolisiertes Terminal

Heute einmal eine andere Form von „Der unbekannte Befehl“ denn ich habe festgestellt, dass ich zwar hier Befehle behandele die mehr oder minder exotisch sind aber hier noch niemals was zu der ein paar Handvollen die man ständig braucht geschrieben habe. Daher nun eine Abhandlung zu den gängigen Befehlen die man in der Konsole ständig nutzt.

Einleitung

Man braucht hier vor allem Dateioperationen wie das Auflisten von Verzeichnissen oder das Anzeigen und Bearbeiten von Dateiinhalten aber auch das Ändern von Dateirechte und vieles mehr. Hier unterscheidet sich Linux zunächst einmal wenig von der Eingabeaufforderung von (MS-)DOS, Windows, CPM oder sonstige Konsolen. Die größten Unterschiede sind die Bezeichnung der Befehle und die grundlegende Bedeutung der Konsole. Während z.B. unter Windows die Eingabeaufforderung meist nur noch von Systemadministratoren benutzt wird hat sie unter Linux eine deutlich höhere Bedeutung. Das liegt zum Einen daran, dass Linuxbenutzer oft Computer-affinier sind aber vor allem auch daran, dass die Konsole deutlich mächtiger ist als es eine GUI sein kann.

Weiterlesen

Benchmark vom lokalen Netz in Linux-Netzwerken

Stilisierte Erde mit verschiedenen Verbindungen

Wenn man eine neue Netzwerkkarte eingebaut oder neues Netzwerkkabel verlegt hat so möchte man doch gerne wissen, wie gut die Performance der Netzwerkverbindung ist. In einem früheren Beitrag habe ich beschrieben wie man einen Benchmarktest über das Internet macht. Internetverbindungen und lokale Netzwerkverbindungen unterscheiden sich jedoch gravierend denn i.d.R. spielen bei der Internetverbindung viele Faktoren eine Rolle – Geschwindigkeit der beteiligten Router, Geschwindigkeit der Verbindung zur Gegenstelle, Auslastung des angefragten Servers usw. Im LAN wird die Geschwindigkeit nur durch den Switch und den beteiligten Netzwerkschnittstellen bestimmt. In diesem Beitrag beschränke ich mich auf das Benchmarking im LAN und auf ein reines Linux-Netzwerk. Windows benutze ich schon seit Jahren nicht mehr und da fehlt mir mittlerweile der aktuelle Stand der Technik.

Weiterlesen

USB-Speichstick unter Linux neu formatieren

Schematisches Bild eines USB-Speichersticks

Die Aufgabe klingt eigentlich ganz trivial aber letztens hatte ich da ein echtes Problem bei einem Stick mit einem OpenMediaVault-Image. Alles was ich versucht habe ist mit einer Fehlermeldung ausgestiegen. Auch unter Windows 7, was ich dann widerwillig ausprobiert habe, war da nichts zu machen – auch Fehlermeldung und abgebrochen. Ich habe dann aber tatsächlich eine Lösung für das Problem gefunden.

Weiterlesen

kais-universum.de