Webradio tageweise aufzeichnen

Webradio-Streams lassen sich mit FFmpeg nicht nur aufzeichnen, sondern bereits während der Aufnahme automatisch in einzelne Dateien aufteilen. So kann beispielsweise für jeden Kalendertag eine eigene MP3-Datei erzeugt werden. Für die Aufzeichnung kann ein kleines Shellskript verwendet werden:

#!/bin/bash
ffmpeg \
    -hide_banner \
    -loglevel warning \
    -i "https://stream.example.org" \
    -c copy \
    -f segment \
    -segment_atclocktime 1 \
    -segment_time 86400 \
    -strftime 1 \
    "/home/user/webradio/%Y-%m-%d.mp3"

Der Stream wird hierbei kontinuierlich aufgezeichnet und automatisch in Dateien mit einer Länge von jeweils einem Kalendertag aufgeteilt.

SSH-Schlüssel auf einer Storage Box von Hetzner installieren

Die Storage Boxen von Hetzner werden unter anderem gerne für Backups von Servern genutzt. Damit ein solchen mit entsprechenden Werkzeugen wie Restic erstellt werden können, ist meist ein SSH-Zugang vonnöten. Um den öffentlichen Schlüssel des Servers auf die Storage Box zu übertragen, kann folgender Befehl genutzt werden:

cat ~/.ssh/id_ed25519.pub  | ssh -p23  install-ssh-key

Nach der Abfrage des Passwortes für die Storage Box wird der Schlüssel übertragen und damit automatisch beim Aufbau einer SSH-Verbindung genutzt.

Häufigkeit der Dateiendungen in einem Verzeichnis analysieren

Gerade bei größeren Projekten oder gewachsenen Verzeichnisstrukturen stellt sich manchmal die Frage, welche Dateitypen in dem Verzeichnis enthalten sind. Im Terminal lässt sich diese Frage mit dem Befehl:

find . -type f | awk -F. 'NF>1 {print $NF}' | sort | uniq -c | sort -nr

beantworten. Als Ergebnis erhält der Nutzer eine Liste mit der Häufigkeit und den Änderungen:

478 toml
380 txt
141 lua
56 ini

Zu Berücksichtigen ist das Dateien ohne Endung vollständig ignoriert werden, bei Dateinamen mit mehreren Punkten (z. B. backup.tar.gz) wird ausschließlich die letzte Endung berücksichtigt und zudem erfolgt keine Vereinheitlichung der Groß- und Kleinschreibung, sodass beispielsweise JPG und jpg als unterschiedliche Endungen behandelt werden.

Emulatoren für SteamOS

Für Steam selbst existiert fast nur RetroArch als Emulationsplattform. Diese ist allerdings nicht unbedingt dafür bekannt besonders nutzerfreundlich zu sein. Während Distributionen wie Batocera eine Erfahrung wie aus einem Guss bieten, ist das für Emulation in SteamOS nicht der Fall. Abhilfe schafft hierbei EmuDeck. Dieses installiert ein Frontend als App, welche sich in den Gaming-Modus unter SteamOS integriert.

EmuDeck bzw. EmulationStation nach der Installation

Um EmuDeck zu installieren, muss in den Desktop-Modus des SteamOS gewechselt werden. Dort muss im Browser auf die EmuDeck-Webseite gewechselt werden und dort die Linux-Installation heruntergeladen werden. Diese startet nach der Ausführung den eigentlichen Installer. Hier kann das System wie gewünscht konfiguriert werden. Spätere Updates laufen dann ebenfalls über das Interface im Desktop-Modus. Nach der Installation kann wieder in den Gaming-Modus gewechselt werden.

Passwort für Batocera im Terminal setzen

Die Retro-Gaming-Distribution Batocera ist nicht auf Sicherheit getrimmt. So wird der Account root, standardmäßig mit dem Passwort linux ausgeliefert. Wer sich per SSH mit einer Batocera-Installation verbindet, wird feststellen das eine Änderung über passwd nicht möglich ist:

[root@BATOCERA ~]# passwd
-bash: passwd: Kommando nicht gefunden.

Stattdessen muss hier anders vorgegangen werden. Im ersten Schritt muss die Option Enforce Security aktiviert werden. Dazu muss die entsprechende Konfigurationsdatei bearbeitet werden:

nano /userdata/system/batocera.conf

Dort muss der Security-Block aktiviert werden:

## Security
## Enable this to enforce security, requiring a password to access the network share.
system.security.enabled=1

Anschließend kann das Passwort gesetzt werden:

batocera-config setRootPassword secret123

Auch hier fällt wieder auf, dass die Sicherheitseinstellungen der Distribution zu wünschen übrig lassen:

*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.

Das neu gesetzte Passwort gilt immer nur nach einem Neustart, sodass dieser ebenfalls durchgeführt werden muss:

reboot

Anschließend kann sich mit dem neuen Passwort, z. B. per SSH, verbunden werden. Das Passwort kann daneben in den Systemeinstellungen der Batocera-Oberfläche unter Sicherheit eingesehen werden.