Inhaltsverzeichnis
Linux-Version ermitteln
Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben:
uname -a
cat /proc/version
cat /etc/*release
RAID Laufwerk(e) mounten
Gerätenamen ermitteln
Mit
cat /proc/partitions
und / oder mit
fdisk -l
kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw.
Assemblen
RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando:
mdadm --assemble /dev/md5 /dev/sda3 --run
angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!)
Mounten
Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted:
mount -r /dev/md5 /mnt/HDD
Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen.
Ein Dateisystem beschreibbar remounten
sudo mount -o remount,rw /partition/identifier /mount/point
Prozesse im Hintergrund
Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten.
Einen Task starten
Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl nohup
, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden:
Variante 1
nohup cp /source /target &
Variante 2
Ohne nohup soll das auch so gehen:
cp /source /target & >/dev/null 2>/dev/null ; disown;
Variante 3
Eine wohl noch bessere Möglichkeit ist setsid
:
setsid cp /source /target
Bereits laufende Tasks
Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden:
Ctrl.+Z bg disown
Shell-Tricks
Dateinamen aus Pfad ermitteln
Hierfür gibt es eine built-in Funktion:
Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad")
liefert Datei.Ext
Extension aus Dateinamen ermitteln
Dateiname=Datei.Name.Ext Extension=${Dateiname##*.}
liefert Ext
Absturz via Shell
Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein.
Wer die Zeile erklären kann, bitte posten :)
:(){ :|:& } ;:
Quellen
https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to
https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session
https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect
https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/