15. November 2024 | 0 Kommentare »
Tags: Connect, Filesharing, Kodi, local, NAS, Raspberry Pi, remote, SSH, Tunnel
Kategorie: Computer, Technik
Ich habe einen Raspberry Pi mit Kodi vor Ort und ein entferntes NAS, von dem ich Multimedia Daten auf den Kodi streamen wollte. Jetzt wollte ich keine Löcher in die Firewall des entfernten NAS schießen und auch keinen Wireguard VPN Server darauf installieren. Ich habe aus Sicherheitsgründen lediglich die SSH bzw. SFTP Möglichkeit zur Verfügung, um mit dem NAS zu kommunizieren. Aus Sicherheitsgründen ist aber die Verbindung mit Passwort auf dem NAS nicht erlaubt (stattdessen nur SSH Keys) und damit kann ich mit Kodi nicht über die “Remote Shares” der Kodi GUI auf das NAS zugreifen. Die gehen nämlich nur mit Passwort.
Ich habe versucht über einen Local SSH Tunnel auf das NAS zu kommen, um darüber eine Datenverbindung aufzubauen. Da mein Versuch am Ende erfolgreich war, möchte ich die Lösung hier teilen:
Erst mal muss man sich für die Konfiguration mit root@<hostname> auf dem Kodi im lokalen Netzwerk anmelden. Dann findet man unter /storage/.config/autostart.sh
eine Datei, in der man Befehle eintragen kann, die Kodi beim Start ausführt. Also der perfekte Ort um eine SSH Verbindung zum NAS beim Start des Kodi aufzubauen. Das mache ich mit dem Befehl ssh <user>@<adresse> -i <IdentityFile> (anlegen, wenn nicht vorhanden) -p <port> -f (background) -T (kein Terminalemulator) -L 5005:localhost:5005 sleep 14d
sleep 14d
hält die Remote Verbindung für 14 Tage offen. Ohne dieses Kommando würde sich die SSH Verbindung sofort wieder schließen.
Mit diesem Befehl baue ich eine Verbindung zum WebDAV Dienst auf dem NAS auf, ohne SSL Verschlüsselung, weil alles lokal.
Um schließlich auf die Daten auf dem NAS mit Kodi zugreifen zu können, muss ich in Kodi noch ein neues Network-Share hinzufügen. Als Dienst gebe ich natürlich WebDAV an und nutze meine normalen Zugangsdaten. Allerdings mit der Adresse localhost bzw. 127.0.0.1 und Port 5005.
Die Daten fließen nun durch den verschlüsselten Tunnel zum Kodi.
13. September 2023 | 0 Kommentare »
Tags: Bildkonvertierung, CLI, convert, find, Image, Image conversion, ImageMagick, Linux, macos, man, Terminal, xargs
Kategorie: Computer, Technik
Umwandlung aller Bilder eines Types aus verschiedenen Unterordnern in ein spezielles Verzeichnis
Wenn du mehrere Unterverzeichnisse hast, über die vertreut Bilddateien liegen, die du platzsparend kleinrechnen und in ein eigenes Verzeichnis abspeichern willst, dann probiere diesen Code aus:
find . -name *.TIF -print0 | \
xargs -n1 -0 -I% sh -c \
'convert -format jpg -quality 80 \
"%" klein/$(basename "%" .TIF).jpg'
# find: Dateien suchen
# Pipe zu xargs
# führt ein Shell Kommando mit convert aus
# schreibt alle Dateien in ein! Unterverzeichnis
Ich hatte viele große TIF Dateien vom Fotografen aus mehreren WeTransfer ZIP Dateien extrahiert, die nun in verschiedenen Ordnern verstreut lagen. Eine Datei wog über 100 MB. Die vielen überflüssigen GB Speicherplatz wollte ich wieder auflösen.
Ein find . -name *.TIF
sucht rekursiv nach allen TIF Dateien.
-print0
sorgt dafür dass ein null character als Trennzeichen gesetzt wird, weil sonst Leerzeichen in den Ordnernamen für Falschinterpretationen nach der Pipe entstehen können.
xargs -n1
führt maximal ein Argument im nachfolgenden Befehl aus
-0
löst die null character als Trennzeichen auf
-I%
ist der Platzhalter für den Pfad/Dateinamen der gefundenen Datei
sh -c
führt ein Shell Kommando von einem String aus, das in einfachen Anführungszeichen folgt:
convert -format jpg -quality 80
stellt die Konvertierung auf JPG und Qualität 80% ein.
"%"
Damit die Leerzeichen richtig interpretiert werden muss der Platzhalter in Anführungszeichen stehen.
$(basename "%" .TIF).jpg
sorgt dafür, dass nur der Dateiname vom Platzhalter verwendet wird und das .TIF ausgelassen wird, so dass ich lediglich die Endung jpg am Ende habe.