staging.inyokaproject.org

2026 Woche 36

5. September 2026

Einleitung

Bei Manjaro Linux ist die Wahl der richtigen Mirror-Server ein entscheidender Faktor für die Geschwindigkeit von Updates.

pacman-mirrors ist das von den Manjaro-Entwicklern bereitgestellte Werkzeug zur Verwaltung der Mirror-Liste. Es gilt für die verschiedenen Zweige (stable, testing, unstable).

Schnell und automatisch die besten Server finden

Der einfachste Befehl, um die schnellsten verfügbaren Mirror-Server zu ermitteln, ist --fasttrack. Damit wird eine Liste der schnellsten Server generiert.

sudo pacman-mirrors --fasttrack && sudo pacman -Syu

Du kannst die Anzahl der zu verwendenden Server begrenzen, zum Beispiel auf die 5 schnellsten.

sudo pacman-mirrors --fasttrack 5 && sudo pacman -Syu

Das hat bei mir einen deutlichen Geschwindigkeitsvorteil gebracht. Die Synchronisation der Paketdatenbanken läuft danach viel flüssiger.

Server für ein bestimmtes Land auswählen

Wenn du gezielt Server in Deutschland nutzen möchtest, verwende den --country Parameter. Du kannst auch mehrere Länder durch Kommas getrennt angeben.

sudo pacman-mirrors --country Germany && sudo pacman -Syu
sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syu

Mirrors interaktiv auswählen

Mit der Option --interactive öffnet sich ein grafisches Fenster, in dem du die verfügbaren Mirrors sehen und nach Geschwindigkeit oder anderen Kriterien sortieren kannst. So hast du die volle Kontrolle.

sudo pacman-mirrors --interactive --default && sudo pacman -Syu

Diese Methode finde ich besonders praktisch, wenn ich sehen möchte, welche Server überhaupt zur Verfügung stehen.

Ein wichtiger Hinweis zum Abschluss

Nach jeder Änderung der Mirror-Liste mit pacman-mirrors ist es zwingend erforderlich, die Paketdatenbank zu synchronisieren, um Probleme mit teilweisen Aktualisierungen zu vermeiden. Die Befehle oben führen dies direkt mit && sudo pacman -Syu aus.

Das hat mich am Anfang einige Male erwischt. Einmal habe ich vergessen, die Datenbank zu synchronisieren, und dann kamen merkwürdige Fehlermeldungen.

Download

Die benötigten Werkzeuge sind bereits in jedem Manjaro-System enthalten.

  • pacman-mirrors ist vorinstalliert
  • Die offizielle Manjaro-Dokumentation bietet weitere Informationen

https://wiki.manjaro.org/index.php/Pacman-mirrors

Einleitung

Bei Manjaro Linux ist die Wahl der richtigen Mirror-Server ein entscheidender Faktor für die Geschwindigkeit von Updates.

pacman-mirrors ist das von den Manjaro-Entwicklern bereitgestellte Werkzeug zur Verwaltung der Mirror-Liste. Es gilt für die verschiedenen Zweige (stable, testing, unstable).

Schnell und automatisch die besten Server finden

Der einfachste Befehl, um die schnellsten verfügbaren Mirror-Server zu ermitteln, ist --fasttrack. Damit wird eine Liste der schnellsten Server generiert.

sudo pacman-mirrors --fasttrack && sudo pacman -Syu

Du kannst die Anzahl der zu verwendenden Server begrenzen, zum Beispiel auf die 5 schnellsten.

sudo pacman-mirrors --fasttrack 5 && sudo pacman -Syu

Das hat bei mir einen deutlichen Geschwindigkeitsvorteil gebracht. Die Synchronisation der Paketdatenbanken läuft danach viel flüssiger.

Server für ein bestimmtes Land auswählen

Wenn du gezielt Server in Deutschland nutzen möchtest, verwende den --country Parameter. Du kannst auch mehrere Länder durch Kommas getrennt angeben.

sudo pacman-mirrors --country Germany && sudo pacman -Syu
sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syu

Mirrors interaktiv auswählen

Mit der Option --interactive öffnet sich ein grafisches Fenster, in dem du die verfügbaren Mirrors sehen und nach Geschwindigkeit oder anderen Kriterien sortieren kannst. So hast du die volle Kontrolle.

sudo pacman-mirrors --interactive --default && sudo pacman -Syu

Diese Methode finde ich besonders praktisch, wenn ich sehen möchte, welche Server überhaupt zur Verfügung stehen.

Ein wichtiger Hinweis zum Abschluss

Nach jeder Änderung der Mirror-Liste mit pacman-mirrors ist es zwingend erforderlich, die Paketdatenbank zu synchronisieren, um Probleme mit teilweisen Aktualisierungen zu vermeiden. Die Befehle oben führen dies direkt mit && sudo pacman -Syu aus.

Das hat mich am Anfang einige Male erwischt. Einmal habe ich vergessen, die Datenbank zu synchronisieren, und dann kamen merkwürdige Fehlermeldungen.

Download

Die benötigten Werkzeuge sind bereits in jedem Manjaro-System enthalten.

  • pacman-mirrors ist vorinstalliert
  • Die offizielle Manjaro-Dokumentation bietet weitere Informationen

https://wiki.manjaro.org/index.php/Pacman-mirrors

4. September 2026

Mozilla hat mit Firefox 155.0.1 ein Korrektur-Update veröffentlicht. Dieser Artikel beschreibt die Änderungen des neuesten Updates.

Download Mozilla Firefox 155.0.1

Ein Problem wurde behoben, bei dem Firefox komplett einfrieren konnte, wenn eine Website gemeinsam CSS Backdrop- und Blur-Filter genutzt hat.

In Netzwerken, die UDP blockieren, konnte das Laden von Websites über HTTP/3 fehlschlagen.

Für Nutzer der vertikalen Tabs und aktivierter Option „Tabs und Sidebar ausblenden” erschien die Sidebar nicht mehr nach einem Neustart von Firefox.

Im Anwendungs-Menü erschien unter Umständen nicht mehr das Symbol des Firefox-Profils. Außerdem konnte die Sync-Promotion für Nutzer, die keine Synchronisation nutzen, bei kleinen Fenstergrößen fehlerhaft dargestellt werden.

Im Konto-Menü wurde das aktuelle Gerät unter den verbundenen Gerätenen mit angezeigt.

Die Liste der verfügbaren Standorte für die kostenlose VPN-Integration aktualisiert jetzt bei einer Änderung des Standard-Browsers korrekt, ohne dass der Browser dafür neu gestartet werden muss.

Die maximale Größe des Write-Ahead-Logs für die Cookie-Datenbank wurde reduziert, um die Performance der Cookies-Datenbank zu verbessern, insbesondere wenn Cookies beim Beenden von Firefox gelöscht werden.

Der Beitrag Mozilla veröffentlicht Firefox 155.0.1 erschien zuerst auf soeren-hentzschel.at.

2. September 2026

Die MZLA Technologies Corporation hat mit Thunderbird 155 eine neue Version seines Open Source E-Mail-Clients für Windows, Apple macOS und Linux veröffentlicht.

Neuerungen von Thunderbird 155

Mit Thunderbird 155 hat die MZLA Technologies Corporation ein Update für seinen Open Source E-Mail-Client veröffentlicht.

Das S/MIME-Popup zeigt Signatur-, Hash- und Verschlüsselungsalgorithmen sowie Schlüssellängen an. Unterstützung für benutzerdefinierte OAuth-Konfigurationen für IMAP- und SMTP-Server wurde hinzugefügt und weitere Verbesserungen in Zusammenhang mit OAuth implementiert. Auch die manuelle Kontoeinrichtung wurde weiter verbessert.

Ansonsten gab es auch wieder eine ganze Reihe von Verbesserungen unter der Haube und Fehlerkorrekturen, welche sich wie immer in den Release Notes (engl.) nachlesen lassen. Auch Sicherheitslücken wurden im neuesten Update wieder behoben.

Der Beitrag Thunderbird 155 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

1. September 2026

Mozilla hat Firefox 155 für Windows, Apple macOS und Linux veröffentlicht. Dieser Artikel fasst die wichtigsten Neuerungen zusammen.

Download Mozilla Firefox für Microsoft Windows, Apple macOS und Linux

Sortierbare Tab-Umgebungen

Tab-Umgebungen, ein neues Feature seit Firefox 153, können in den Einstellungen jetzt sortiert werden. Die benutzerdefinierte Reihenfolge wird überall genutzt, wo Tab-Umgebungen zur Auswahl stehen.

Sonstige Endnutzer-Neuerungen in Firefox 155

Firefox zeigt jetzt direkt in der Adressleiste an, wie viele Tracker auf der jeweiligen Website blockiert worden sind. Diese Neuerung wird schrittweise ausgerollt.

Die sogenannten intelligenten Fenster, ein neues KI-Feature, welches schrittweise ausgerollt wird, ist jetzt für alle Nutzer in den USA, Kanada und Frankreich verfügbar. Neue personalisierte Gesprächseinstiege helfen Nutzern, schnell zu Themen zurückzukehren, an denen sie bereits gearbeitet haben. Antworten erfolgen jetzt deutlich schneller und die Exa-Websuche liefert nun auch Quellenangaben. Und beim Organisieren von Tabs werden nun bessere Gruppierungen mit verbesserten Namen vorgeschlagen.

PDF-Dateien, die kleiner als die Papiergröße sind, können für den Ausdruck nun hoch skaliert werden, um die Seiten auszufüllen.

Mit Marathi und Urdu unterstützt die Übersetzungsfunktion zwei weitere Sprachen.

Der Controller der Nintendo Switch Pro und kompatible Controller von Drittanbietern funktionieren unter Windows jetzt uneingeschränkt in Browser-Spielen. Steuerkreuz und Analogsticks sind dabei korrekt zugeordnet.

Firefox reagiert auf mailto:-Links nur noch nach expliziter Nutzerinteraktion, sodass Websites nicht selbstständig das Öffnen einer Mail-Anwendung auslösen können.

Die Entwicklerwerkzeuge haben ein neues Emulations-Panel erhalten, in welches die Emulation der Druckansicht verschoben wurde. Darüber hinaus lässt sich hier nun auch prefers-reduced-motion emulieren. Außerdem unterstützt der JSON-Betrachter nun auch JSONL und NDJSON.

Über die neue versteckte Option browser.urlbar.trimWww in about:config lässt sich das „www.” vieler Domains in der Adressleiste ausblenden.

Darüber hinaus gab es diverse Korrekturen, welche in den offiziellen Release Notes näher beschrieben werden. Verbesserungen der Webplattform lassen sich in den MDN web docs nachlesen.

Mehr Sicherheit für Firefox-Nutzer

Auch in Firefox 155 wurden wieder mehrere Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 155 daher für alle Nutzer dringend empfohlen.

Der Beitrag Mozilla veröffentlicht Firefox 155 erschien zuerst auf soeren-hentzschel.at.

SSH Login mit Public-Key-Authentifizierung einrichten

Grundlegender rsync mit ssh Befehl

rsync -avz -e ssh /lokaler/pfad/ benutzer@server:/ziel/pfad/
rsync -avzP --delete --progress -e "ssh -p 2222" /quelle/ user@server:/ziel/
rsync -avz --rsh="ssh -p 2222" /lokaler/pfad/ benutzer@server:/ziel/pfad/
Optionen+ Bedeutung
-a Archiv-Modus (Behält Berechtigungen, Zeitstempel, Symlinks, etc.)
-v Verbose (zeigt Details)
-z Komprimiert während der Übertragung
--progress Zeigt Fortschritt pro Datei
-P --progress + --partial (ermöglicht Wiederaufnahme)
-e ssh Explizit SSH als Transport nutzen
-p 2222 Anderer SSH-Port (Standard: 22)
--delete Löscht Dateien auf dem Ziel, die lokal nicht mehr existieren
--dry-run Testlauf ohne Änderungen
--exclude="*.tmp" Bestimmte Dateien ausschließen
--include="*.txt" Bestimmte Dateien einschließen
--bwlimit=1000 Bandbreite auf 1000 KB/s begrenzen

Verzeichnisse und Dateien beim rsync ausschließen

Die Option --exclude funktioniert für Dateien und Verzeichnisse auf die gleiche Weise. Du kannst sowohl einzelne Dateien als auch ganze Ordner mit derselben Syntax ausschließen.

Die allgemeine Syntax lautet:

rsync [OPTIONEN] QUELLE/ ZIEL/ --exclude=MUSTER

Dabei kann MUSTER sowohl ein Dateiname als auch ein Verzeichnisname sein.

Beispiel mit einem konkreten Verzeichnis und einer konkreten Datei

Lokaler Client                                Server
─────────────────────────────────────────────────────────────────────────────

~/Projekte/website/                           /meinserver/verzeichnis/
│
├── index.php                                 ├── index.php
├── about.php                                 ├── about.php
├── contact.php                               ├── contact.php
├── config.local.php  ──── ausgeschlossen ────✗ (nicht übertragen)
├── _archive/         ──── ausgeschlossen ────✗ (nicht übertragen)
│   ├── altes-design.css
│   └── backup-vom-januar/
├── cache/
│   └── temp/
├── css/
│   └── style.css
└── .rsync-exclude.txt

Angenommen, du möchtest von deinem lokalen Verzeichnis ~/Projekte/website auf den Server /meinserver/verzeichnis/ synchronisieren und dabei das Verzeichnis _archive sowie die Datei config.local.php ausschließen.

Mit und ohne /Schrägstrich/ am Ende

… ohne Schrägstrich kopiert rsync das gesamte Verzeichnis website inklusive seines Namens auf den Server.

----------
VARIANTE 1
----------
                                           👇
rsync -a --info=progress2 ~/Projekte/website meinserver:/verzeichnis/ --exclude=/website/_archive/ --exclude=/website/config.local.php

… mit Schrägstrich kopiert rsync nur den Inhalt von website direkt nach /verzeichnis/ auf dem Server.

----------
VARIANTE 2
----------
                                            👇
rsync -a --info=progress2 ~/Projekte/website/ meinserver:/verzeichnis/ --exclude=/_archive/ --exclude=/config.local.php

Vorsicht: Kein Schrägstrich beim Verzeichnis (Datei)

Bei der Schreibweise --exclude='_archive' oder --exclude='config.local.php' schließt rsync alle Dateien und Verzeichnisse die so heissen komplett aus.

Was ist für rsync root /

Der Pfad nach --exclude= muss immer relativ zur Wurzel der Übertragung sein.

  • Bei der ersten Variante ist ~/Projekte die Wurzel
  • bei der zweiten Variante ist ~/Projekte/website/ die Wurzel.

Mehrere Dateien und Verzeichnisse ausschließen

Du kannst den --exclude-Parameter beliebig oft wiederholen, um eine Mischung aus Dateien und Ordnern auszuschließen:

rsync -a ~/Projekte/website/ meinserver:/verzeichnis/ --exclude=/_archive/ --exclude=/config.local.php --exclude='*.tmp' --exclude=/cache/

Exclude-Liste aus einer Datei verwenden

Falls du viele Ausnahmen definieren möchtest, ist es übersichtlicher, diese in eine Datei zu schreiben und mit --exclude-from= zu verwenden:

rsync -a ~/Projekte/website/ meinserver:/verzeichnis/ --exclude-from=/pfad/zur/ausschlussliste.txt

Die Ausschlussliste könnte beispielsweise so aussehen:

/_archive/
/config.local.php
/*.tmp
/cache/
/logs/

Wenn die Datei z.B. (versteckt) .rsync-exclude.txt mit den Excludes im selben Pfad liegt, muss sie selbst natürlich auch excluded werden.

rsync -a ~/Projekte/website/ meinserver:/verzeichnis/ --exclude-from=/.rsync-exclude.txt --exclude=/.rsync-exclude.txt

Die Datei kann natürlich auch außerhalb des Verzeichnisses platziert werden.

Testlauf durchführen

Bevor du den Befehl ausführst, kannst du mit --dry-run oder -n prüfen, ob die richtigen Dateien und Verzeichnisse ausgeschlossen werden:

rsync -a --dry-run ~/Projekte/website/ meinserver:/verzeichnis/ --exclude=/_archive/ --exclude=/config.local.php

Exclude-Übersicht: Schreibweisen für Dateien & Verzeichnisse

Option Verhalten Beispiel für Verzeichnis Beispiel für Datei
--exclude=/pfad/zum/element/ Schließt nur den exakten Pfad in der Übertragungswurzel aus. --exclude=/_archive/ --exclude=/config.local.php
--exclude=name Schließt jedes Element dieses Namens aus, wo auch immer es sich befindet. --exclude=_archive --exclude=config.local.php
--exclude=*/name/ Schließt jeden Ordner name aus, der ein direktes Unterverzeichnis eines beliebigen Ordners ist. --exclude=*/_archive/ nicht anwendbar
--exclude=*.endung Schließt alle Dateien mit einer bestimmten Endung aus. nicht anwendbar --exclude=*.log

Performance-Tuning

Optimierung Befehl
Schnellere Verbindung -e "ssh -c arcfour" (weniger sicher, aber schneller)
Größere Blockgröße -B 8192 (für große Dateien)
Keine Komprimierung --no-compress (bei schnellen Netzwerken)
Weniger I/O --inplace (Dateien direkt überschreiben)

Parallelisieren für viele kleine Dateien

Hierzu muss das Tool parallel installiert sein.

## Mit GNU parallel
find /daten -type f | parallel -j 4 rsync -avz {} server:/backup/{}

Restriktive Berechtigungen auf dem Server

## ~/.ssh/authorized_keys mit Einschränkungen
command="rsync --server -vlogDtprze.iLsf . /backup/",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAA... backup-user

Komplettes Backup mit Löschung (Spiegelung)

# -avzP    : Komplettes Backup 
# P        : Fortschrittsanzeige
# --delete : mit Löschung (Spiegelung)
# -e "ssh -p 2222" : anderer SSH Port
# --exclude="*.mp4" --exclude=".cache/" : Ausschluss von Dateien oder Ordnern
# --bwlimit=5000 : Limitierte Bandbreite hier 5Mbit
# --dry-run : Testlauf ... nichts passiert
# --no-compress : keine Komprimierung

rsync -avzP --delete -e "ssh -p 2222" /home/benutzer/ benutzer@server:/backup/home/

Highperformance Sync

Hier ist ein hochperformantes Beispiel für das parallele Synchronisieren vieler Dateien mit rsync:

find /daten -type f | parallel -j 8 rsync -avzP --delete -e "ssh -p 2222 -c aes128-gcm@openssh.com -o Compression=no" {} benutzer@server:/backup/{} --no-compress --bwlimit=10000

Erklärung der Parameter

  • find /daten -type f listet alle Dateien im Quellverzeichnis auf und übergibt sie an parallel
  • -j 8 bestimmt die Anzahl der parallelen Prozesse (Faustregel: 4 bis 8)
  • -c aes128-gcm@openssh.com verwendet einen schnellen Verschlüsselungsalgorithmus
  • -o Compression=no deaktiviert die SSH-Komprimierung (rsync hat bereits --no-compress)
  • --bwlimit=10000 begrenzt die Bandbreite auf 10 MB/s (Wert in KB/s)

Performance-Tipps für viele kleine Dateien

Bei sehr vielen kleinen Dateien (z.B. tausende 1-KB-Dateien) ist die Latenz der SSH-Verbindung der limitierende Faktor. In diesem Fall sind weniger parallele Prozesse sinnvoll, um den SSH-Handshake-Overhead zu reduzieren. Ich empfehle dann -j 4 oder sogar nur -j 2.

Ein weiterer Performance-Gewinn lässt sich erzielen, indem große Dateien aus der Parallelisierung ausgeschlossen werden und sie separat synchronisiert werden.

## Kleine Dateien parallel synchronisieren
find /daten -type f -size -10M | parallel -j 8 rsync -av --no-compress {} benutzer@server:/backup/{}
## Große Dateien einzeln mit Komprimierung übertragen
find /daten -type f -size +10M | parallel -j 1 rsync -avzP {} benutzer@server:/backup/{}

Komfortables rsync-ssh Script

  • Die Exclude-Datei wird automatisch von der Übertragung ausgeschlossen, damit sie nicht auf den Server kopiert wird.
  • Das Script speicherst du als rsync-parallel-backup.sh und machst es ausführbar:
chmod +x rsync-parallel-backup.sh

Vor der Ausführung passt du die Werte im Bereich “Benutzerkonfiguration” an:

Variable Bedeutung
REMOTE_USER Benutzername auf dem Server
REMOTE_HOST Server-Adresse oder Domain
SSH_PORT SSH-Port (Standard: 22)
LOCAL_SOURCE Lokales Quellverzeichnis
REMOTE_TARGET Zielverzeichnis auf dem Server
EXCLUDE_FILE Pfad zur Exclude-Datei (wird selbst ausgeschlossen)
COMPRESSION yes oder no - bei schnellen Netzwerken no
BANDWIDTH_LIMIT Bandbreitenlimit in KB/s, 0 für unbegrenzt
RSYNC_EXTRA_OPTIONS Zusätzliche rsync-Optionen (z.B. --chmod=755)
DRY_RUN "true" Testen - es werden keine Dateien übertragen oder gelöscht / "false" Echter Sync - Dateien werden übertragen und gelöscht

Bei DRY_RUN="true" wird die rsync-Option --dry-run hinzugefügt. Das Script zeigt dann in der Ausgabe einen deutlichen Hinweis an, dass der Testmodus aktiv ist, und gibt nach Abschluss eine entsprechende Meldung aus.

#!/bin/bash

# ============================================================
# rsync-parallel-backup.sh - Hochperformantes paralleles Backup
# ============================================================
# Author: hoergen
# Date: 20260901
# URL: https://hyperblog.de/hoergen/

# -------------------- Benutzerkonfiguration --------------------

# SSH-Verbindungsdaten
REMOTE_USER="benutzer"
REMOTE_HOST="server.domain.de"
SSH_PORT="2222"

# Verzeichnisse
LOCAL_SOURCE="/daten"
REMOTE_TARGET="/backup/"

# Exclude-Datei (Pfad zur Datei mit Ausschlusslisten)
EXCLUDE_FILE="/pfad/zur/ausschlussliste.txt"

# Performance-Einstellungen
COMPRESSION="no"            # "yes" oder "no" - bei schnellen Netzwerken "no"
BANDWIDTH_LIMIT="10000"     # KB/s, 0 = unbegrenzt

# Testmodus
DRY_RUN="false"             # "true" = Testlauf (--dry-run), "false" = echter Sync

# Zusätzliche rsync-Optionen (leer lassen wenn nicht benötigt)
RSYNC_EXTRA_OPTIONS=""

# -------------------- Ende Benutzerkonfiguration --------------------

error_exit() {
    echo "FEHLER: $1" >&2
    exit 1
}

# Prüfen, ob die lokale Quelle existiert
if [ ! -d "$LOCAL_SOURCE" ]; then
    error_exit "Lokales Quellverzeichnis '$LOCAL_SOURCE' existiert nicht."
fi

# Exclude-Optionen zusammenbauen
EXCLUDE_OPTION=""
if [ -n "$EXCLUDE_FILE" ]; then
    if [ -f "$EXCLUDE_FILE" ]; then
        EXCLUDE_OPTION="--exclude-from=$EXCLUDE_FILE --exclude=$EXCLUDE_FILE"
        echo "Verwende Exclude-Datei: $EXCLUDE_FILE"
    else
        echo "WARNUNG: Exclude-Datei '$EXCLUDE_FILE' existiert nicht. Fahre ohne Ausschlüsse fort."
    fi
fi

# SSH-Optionen
SSH_OPTIONS="-p $SSH_PORT -c aes128-gcm@openssh.com -o Compression=no -o ServerAliveInterval=60"

# rsync-Optionen zusammenbauen
RSYNC_OPTIONS="-avP --delete $RSYNC_EXTRA_OPTIONS"

if [ "$COMPRESSION" = "no" ]; then
    RSYNC_OPTIONS="$RSYNC_OPTIONS --no-compress"
fi

if [ "$BANDWIDTH_LIMIT" -gt 0 ]; then
    RSYNC_OPTIONS="$RSYNC_OPTIONS --bwlimit=$BANDWIDTH_LIMIT"
fi

if [ "$DRY_RUN" = "true" ]; then
    RSYNC_OPTIONS="$RSYNC_OPTIONS --dry-run"
fi

# Ausgabe der Konfiguration
echo "============================================================"
echo "rsync-backup.sh - Starte Backup"
echo "============================================================"
echo "Quelle:                 $LOCAL_SOURCE"
echo "Ziel:                   $REMOTE_USER@$REMOTE_HOST:$REMOTE_TARGET"
echo "SSH-Port:               $SSH_PORT"
echo "Komprimierung:          $COMPRESSION"
echo "Bandbreitenlimit:       $BANDWIDTH_LIMIT KB/s"
echo "Exclude-Datei:          ${EXCLUDE_FILE:-keine}"
echo "Testmodus (dry-run):    $DRY_RUN"
echo "============================================================"

if [ "$DRY_RUN" = "true" ]; then
    echo "ACHTUNG: Testmodus aktiv! Es werden keine Dateien übertragen oder gelöscht."
    echo "============================================================"
fi

# Bestätigung abfragen
read -p "Mit diesen Einstellungen fortfahren? (j/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Jj]$ ]]; then
    echo "Abgebrochen."
    exit 0
fi

# Startzeit messen
START_TIME=$(date +%s)
echo "Starte Synchronisation um $(date)"

# Rsync-Befehl ausführen
rsync $RSYNC_OPTIONS -e "ssh $SSH_OPTIONS" $EXCLUDE_OPTION "$LOCAL_SOURCE/" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_TARGET"

# Prüfen, ob der Befehl erfolgreich war
if [ $? -eq 0 ]; then
    END_TIME=$(date +%s)
    DURATION=$((END_TIME - START_TIME))
    echo "============================================================"
    if [ "$DRY_RUN" = "true" ]; then
        echo "Testlauf erfolgreich abgeschlossen!"
        echo "Es wurden keine Dateien übertragen oder gelöscht."
        echo "Zum Ausführen des echten Backups setze DRY_RUN='false'."
    else
        echo "Backup erfolgreich abgeschlossen!"
    fi
    echo "Dauer: $((DURATION / 60)) Minuten und $((DURATION % 60)) Sekunden"
    echo "============================================================"
else
    echo "FEHLER: Backup fehlgeschlagen!" >&2
    exit 1
fi

exit 0

SSH Login mit Public-Key-Authentifizierung einrichten

Grundlegender rsync mit ssh Befehl

rsync -avz -e ssh /lokaler/pfad/ benutzer@server:/ziel/pfad/
rsync -avzP --delete --progress -e "ssh -p 2222" /quelle/ user@server:/ziel/
rsync -avz --rsh="ssh -p 2222" /lokaler/pfad/ benutzer@server:/ziel/pfad/
Optionen+ Bedeutung
-a Archiv-Modus (Behält Berechtigungen, Zeitstempel, Symlinks, etc.)
-v Verbose (zeigt Details)
-z Komprimiert während der Übertragung
--progress Zeigt Fortschritt pro Datei
-P --progress + --partial (ermöglicht Wiederaufnahme)
-e ssh Explizit SSH als Transport nutzen
-p 2222 Anderer SSH-Port (Standard: 22)
--delete Löscht Dateien auf dem Ziel, die lokal nicht mehr existieren
--dry-run Testlauf ohne Änderungen
--exclude="*.tmp" Bestimmte Dateien ausschließen
--include="*.txt" Bestimmte Dateien einschließen
--bwlimit=1000 Bandbreite auf 1000 KB/s begrenzen

Verzeichnisse und Dateien beim rsync ausschließen

Die Option --exclude funktioniert für Dateien und Verzeichnisse auf die gleiche Weise. Du kannst sowohl einzelne Dateien als auch ganze Ordner mit derselben Syntax ausschließen.

Die allgemeine Syntax lautet:

rsync [OPTIONEN] QUELLE/ ZIEL/ --exclude=MUSTER

Dabei kann MUSTER sowohl ein Dateiname als auch ein Verzeichnisname sein.

Beispiel mit einem konkreten Verzeichnis und einer konkreten Datei

Lokaler Client                                Server
─────────────────────────────────────────────────────────────────────────────

~/Projekte/website/                           /meinserver/verzeichnis/
│
├── index.php                                 ├── index.php
├── about.php                                 ├── about.php
├── contact.php                               ├── contact.php
├── config.local.php  ──── ausgeschlossen ────✗ (nicht übertragen)
├── _archive/         ──── ausgeschlossen ────✗ (nicht übertragen)
│   ├── altes-design.css
│   └── backup-vom-januar/
├── cache/
│   └── temp/
├── css/
│   └── style.css
└── .rsync-exclude.txt

Angenommen, du möchtest von deinem lokalen Verzeichnis ~/Projekte/website auf den Server /meinserver/verzeichnis/ synchronisieren und dabei das Verzeichnis _archive sowie die Datei config.local.php ausschließen.

Mit und ohne /Schrägstrich/ am Ende

… ohne Schrägstrich kopiert rsync das gesamte Verzeichnis website inklusive seines Namens auf den Server.

----------
VARIANTE 1
----------
                                           👇
rsync -a --info=progress2 ~/Projekte/website meinserver:/verzeichnis/ --exclude=/website/_archive/ --exclude=/website/config.local.php

… mit Schrägstrich kopiert rsync nur den Inhalt von website direkt nach /verzeichnis/ auf dem Server.

----------
VARIANTE 2
----------
                                            👇
rsync -a --info=progress2 ~/Projekte/website/ meinserver:/verzeichnis/ --exclude=/_archive/ --exclude=/config.local.php

Vorsicht: Kein Schrägstrich beim Verzeichnis (Datei)

Bei der Schreibweise --exclude='_archive' oder --exclude='config.local.php' schließt rsync alle Dateien und Verzeichnisse die so heissen komplett aus.

Was ist für rsync root /

Der Pfad nach --exclude= muss immer relativ zur Wurzel der Übertragung sein.

  • Bei der ersten Variante ist ~/Projekte die Wurzel
  • bei der zweiten Variante ist ~/Projekte/website/ die Wurzel.

Mehrere Dateien und Verzeichnisse ausschließen

Du kannst den --exclude-Parameter beliebig oft wiederholen, um eine Mischung aus Dateien und Ordnern auszuschließen:

rsync -a ~/Projekte/website/ meinserver:/verzeichnis/ --exclude=/_archive/ --exclude=/config.local.php --exclude='*.tmp' --exclude=/cache/

Exclude-Liste aus einer Datei verwenden

Falls du viele Ausnahmen definieren möchtest, ist es übersichtlicher, diese in eine Datei zu schreiben und mit --exclude-from= zu verwenden:

rsync -a ~/Projekte/website/ meinserver:/verzeichnis/ --exclude-from=/pfad/zur/ausschlussliste.txt

Die Ausschlussliste könnte beispielsweise so aussehen:

/_archive/
/config.local.php
/*.tmp
/cache/
/logs/

Wenn die Datei z.B. (versteckt) .rsync-exclude.txt mit den Excludes im selben Pfad liegt, muss sie selbst natürlich auch excluded werden.

rsync -a ~/Projekte/website/ meinserver:/verzeichnis/ --exclude-from=/.rsync-exclude.txt --exclude=/.rsync-exclude.txt

Die Datei kann natürlich auch außerhalb des Verzeichnisses platziert werden.

Testlauf durchführen

Bevor du den Befehl ausführst, kannst du mit --dry-run oder -n prüfen, ob die richtigen Dateien und Verzeichnisse ausgeschlossen werden:

rsync -a --dry-run ~/Projekte/website/ meinserver:/verzeichnis/ --exclude=/_archive/ --exclude=/config.local.php

Exclude-Übersicht: Schreibweisen für Dateien & Verzeichnisse

Option Verhalten Beispiel für Verzeichnis Beispiel für Datei
--exclude=/pfad/zum/element/ Schließt nur den exakten Pfad in der Übertragungswurzel aus. --exclude=/_archive/ --exclude=/config.local.php
--exclude=name Schließt jedes Element dieses Namens aus, wo auch immer es sich befindet. --exclude=_archive --exclude=config.local.php
--exclude=*/name/ Schließt jeden Ordner name aus, der ein direktes Unterverzeichnis eines beliebigen Ordners ist. --exclude=*/_archive/ nicht anwendbar
--exclude=*.endung Schließt alle Dateien mit einer bestimmten Endung aus. nicht anwendbar --exclude=*.log

Performance-Tuning

Optimierung Befehl
Schnellere Verbindung -e "ssh -c arcfour" (weniger sicher, aber schneller)
Größere Blockgröße -B 8192 (für große Dateien)
Keine Komprimierung --no-compress (bei schnellen Netzwerken)
Weniger I/O --inplace (Dateien direkt überschreiben)

Parallelisieren für viele kleine Dateien

Hierzu muss das Tool parallel installiert sein.

## Mit GNU parallel
find /daten -type f | parallel -j 4 rsync -avz {} server:/backup/{}

Restriktive Berechtigungen auf dem Server

## ~/.ssh/authorized_keys mit Einschränkungen
command="rsync --server -vlogDtprze.iLsf . /backup/",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAA... backup-user

Komplettes Backup mit Löschung (Spiegelung)

# -avzP    : Komplettes Backup 
# P        : Fortschrittsanzeige
# --delete : mit Löschung (Spiegelung)
# -e "ssh -p 2222" : anderer SSH Port
# --exclude="*.mp4" --exclude=".cache/" : Ausschluss von Dateien oder Ordnern
# --bwlimit=5000 : Limitierte Bandbreite hier 5Mbit
# --dry-run : Testlauf ... nichts passiert
# --no-compress : keine Komprimierung

rsync -avzP --delete -e "ssh -p 2222" /home/benutzer/ benutzer@server:/backup/home/

Highperformance Sync

Hier ist ein hochperformantes Beispiel für das parallele Synchronisieren vieler Dateien mit rsync:

find /daten -type f | parallel -j 8 rsync -avzP --delete -e "ssh -p 2222 -c aes128-gcm@openssh.com -o Compression=no" {} benutzer@server:/backup/{} --no-compress --bwlimit=10000

Erklärung der Parameter

  • find /daten -type f listet alle Dateien im Quellverzeichnis auf und übergibt sie an parallel
  • -j 8 bestimmt die Anzahl der parallelen Prozesse (Faustregel: 4 bis 8)
  • -c aes128-gcm@openssh.com verwendet einen schnellen Verschlüsselungsalgorithmus
  • -o Compression=no deaktiviert die SSH-Komprimierung (rsync hat bereits --no-compress)
  • --bwlimit=10000 begrenzt die Bandbreite auf 10 MB/s (Wert in KB/s)

Performance-Tipps für viele kleine Dateien

Bei sehr vielen kleinen Dateien (z.B. tausende 1-KB-Dateien) ist die Latenz der SSH-Verbindung der limitierende Faktor. In diesem Fall sind weniger parallele Prozesse sinnvoll, um den SSH-Handshake-Overhead zu reduzieren. Ich empfehle dann -j 4 oder sogar nur -j 2.

Ein weiterer Performance-Gewinn lässt sich erzielen, indem große Dateien aus der Parallelisierung ausgeschlossen werden und sie separat synchronisiert werden.

## Kleine Dateien parallel synchronisieren
find /daten -type f -size -10M | parallel -j 8 rsync -av --no-compress {} benutzer@server:/backup/{}
## Große Dateien einzeln mit Komprimierung übertragen
find /daten -type f -size +10M | parallel -j 1 rsync -avzP {} benutzer@server:/backup/{}

Komfortables rsync-ssh Script

  • Die Exclude-Datei wird automatisch von der Übertragung ausgeschlossen, damit sie nicht auf den Server kopiert wird.
  • Das Script speicherst du als rsync-parallel-backup.sh und machst es ausführbar:
chmod +x rsync-parallel-backup.sh

Vor der Ausführung passt du die Werte im Bereich “Benutzerkonfiguration” an:

Variable Bedeutung
REMOTE_USER Benutzername auf dem Server
REMOTE_HOST Server-Adresse oder Domain
SSH_PORT SSH-Port (Standard: 22)
LOCAL_SOURCE Lokales Quellverzeichnis
REMOTE_TARGET Zielverzeichnis auf dem Server
EXCLUDE_FILE Pfad zur Exclude-Datei (wird selbst ausgeschlossen)
COMPRESSION yes oder no - bei schnellen Netzwerken no
BANDWIDTH_LIMIT Bandbreitenlimit in KB/s, 0 für unbegrenzt
RSYNC_EXTRA_OPTIONS Zusätzliche rsync-Optionen (z.B. --chmod=755)
DRY_RUN "true" Testen - es werden keine Dateien übertragen oder gelöscht / "false" Echter Sync - Dateien werden übertragen und gelöscht

Bei DRY_RUN="true" wird die rsync-Option --dry-run hinzugefügt. Das Script zeigt dann in der Ausgabe einen deutlichen Hinweis an, dass der Testmodus aktiv ist, und gibt nach Abschluss eine entsprechende Meldung aus.

#!/bin/bash

# ============================================================
# rsync-parallel-backup.sh - Hochperformantes paralleles Backup
# ============================================================
# Author: hoergen
# Date: 20260901
# URL: https://hyperblog.de/hoergen/

# -------------------- Benutzerkonfiguration --------------------

# SSH-Verbindungsdaten
REMOTE_USER="benutzer"
REMOTE_HOST="server.domain.de"
SSH_PORT="2222"

# Verzeichnisse
LOCAL_SOURCE="/daten"
REMOTE_TARGET="/backup/"

# Exclude-Datei (Pfad zur Datei mit Ausschlusslisten)
EXCLUDE_FILE="/pfad/zur/ausschlussliste.txt"

# Performance-Einstellungen
COMPRESSION="no"            # "yes" oder "no" - bei schnellen Netzwerken "no"
BANDWIDTH_LIMIT="10000"     # KB/s, 0 = unbegrenzt

# Testmodus
DRY_RUN="false"             # "true" = Testlauf (--dry-run), "false" = echter Sync

# Zusätzliche rsync-Optionen (leer lassen wenn nicht benötigt)
RSYNC_EXTRA_OPTIONS=""

# -------------------- Ende Benutzerkonfiguration --------------------

error_exit() {
    echo "FEHLER: $1" >&2
    exit 1
}

# Prüfen, ob die lokale Quelle existiert
if [ ! -d "$LOCAL_SOURCE" ]; then
    error_exit "Lokales Quellverzeichnis '$LOCAL_SOURCE' existiert nicht."
fi

# Exclude-Optionen zusammenbauen
EXCLUDE_OPTION=""
if [ -n "$EXCLUDE_FILE" ]; then
    if [ -f "$EXCLUDE_FILE" ]; then
        EXCLUDE_OPTION="--exclude-from=$EXCLUDE_FILE --exclude=$EXCLUDE_FILE"
        echo "Verwende Exclude-Datei: $EXCLUDE_FILE"
    else
        echo "WARNUNG: Exclude-Datei '$EXCLUDE_FILE' existiert nicht. Fahre ohne Ausschlüsse fort."
    fi
fi

# SSH-Optionen
SSH_OPTIONS="-p $SSH_PORT -c aes128-gcm@openssh.com -o Compression=no -o ServerAliveInterval=60"

# rsync-Optionen zusammenbauen
RSYNC_OPTIONS="-avP --delete $RSYNC_EXTRA_OPTIONS"

if [ "$COMPRESSION" = "no" ]; then
    RSYNC_OPTIONS="$RSYNC_OPTIONS --no-compress"
fi

if [ "$BANDWIDTH_LIMIT" -gt 0 ]; then
    RSYNC_OPTIONS="$RSYNC_OPTIONS --bwlimit=$BANDWIDTH_LIMIT"
fi

if [ "$DRY_RUN" = "true" ]; then
    RSYNC_OPTIONS="$RSYNC_OPTIONS --dry-run"
fi

# Ausgabe der Konfiguration
echo "============================================================"
echo "rsync-backup.sh - Starte Backup"
echo "============================================================"
echo "Quelle:                 $LOCAL_SOURCE"
echo "Ziel:                   $REMOTE_USER@$REMOTE_HOST:$REMOTE_TARGET"
echo "SSH-Port:               $SSH_PORT"
echo "Komprimierung:          $COMPRESSION"
echo "Bandbreitenlimit:       $BANDWIDTH_LIMIT KB/s"
echo "Exclude-Datei:          ${EXCLUDE_FILE:-keine}"
echo "Testmodus (dry-run):    $DRY_RUN"
echo "============================================================"

if [ "$DRY_RUN" = "true" ]; then
    echo "ACHTUNG: Testmodus aktiv! Es werden keine Dateien übertragen oder gelöscht."
    echo "============================================================"
fi

# Bestätigung abfragen
read -p "Mit diesen Einstellungen fortfahren? (j/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Jj]$ ]]; then
    echo "Abgebrochen."
    exit 0
fi

# Startzeit messen
START_TIME=$(date +%s)
echo "Starte Synchronisation um $(date)"

# Rsync-Befehl ausführen
rsync $RSYNC_OPTIONS -e "ssh $SSH_OPTIONS" $EXCLUDE_OPTION "$LOCAL_SOURCE/" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_TARGET"

# Prüfen, ob der Befehl erfolgreich war
if [ $? -eq 0 ]; then
    END_TIME=$(date +%s)
    DURATION=$((END_TIME - START_TIME))
    echo "============================================================"
    if [ "$DRY_RUN" = "true" ]; then
        echo "Testlauf erfolgreich abgeschlossen!"
        echo "Es wurden keine Dateien übertragen oder gelöscht."
        echo "Zum Ausführen des echten Backups setze DRY_RUN='false'."
    else
        echo "Backup erfolgreich abgeschlossen!"
    fi
    echo "Dauer: $((DURATION / 60)) Minuten und $((DURATION % 60)) Sekunden"
    echo "============================================================"
else
    echo "FEHLER: Backup fehlgeschlagen!" >&2
    exit 1
fi

exit 0
OpenSSH Logo

1. SSH-Key auf dem Client erstellen

ssh-keygen -t ed25519 -C "meine-rsync-backups"

Der Speicherort ist ~/.ssh/id_ed25519 (Standard). Die Passphrase lässt du für automatisierte Backups leer oder gibst sie für mehr Sicherheit ein. Bei Eingabe muss sie dann aber bei jeder Übertragung eingegeben werden.

2. Öffentlichen Schlüssel zum Server kopieren

ssh-copy-id -p PORT benutzer@server

Oder manuell:

cat ~/.ssh/id_ed25519.pub | ssh benutzer@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3. Testen & Login

ssh -p PORT benutzer@server 

Die Verbindung sollte ohne Passwort funktionieren.

Alte & ungültige Schlüssel entfernen

Server: Schlüssel manuell entfernen

Ich öffne die Datei direkt auf dem Server mit einem Texteditor.

ssh -p PORT benutzer@server "vim ~/.ssh/authorized_keys"

Server: Berechtigungen korrigieren

Nach der Bearbeitung stelle ich sicher, dass die Datei die richtigen Berechtigungen hat.

ssh -p PORT benutzer@server "chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh"

Client

Client: Alten Schlüssel entfernen

Bevor ich den Schlüssel lokal lösche, prüfe ich, ob er noch im SSH-Agent geladen ist.

ssh-add -l | grep "alter-schluessel"

Falls der Schlüssel geladen ist, entferne ich ihn zuerst aus dem Agent.

ssh-add -d ~/.ssh/alter-schluessel

Danach lösche ich die Schlüsseldateien. Die Option -i fragt vor dem Löschen sicherheitshalber nach.

rm -i ~/.ssh/alter-schluessel ~/.ssh/alter-schluessel.pub
OpenSSH Logo

1. SSH-Key auf dem Client erstellen

ssh-keygen -t ed25519 -C "meine-rsync-backups"

Der Speicherort ist ~/.ssh/id_ed25519 (Standard). Die Passphrase lässt du für automatisierte Backups leer oder gibst sie für mehr Sicherheit ein. Bei Eingabe muss sie dann aber bei jeder Übertragung eingegeben werden.

2. Öffentlichen Schlüssel zum Server kopieren

ssh-copy-id -p PORT benutzer@server

Oder manuell:

cat ~/.ssh/id_ed25519.pub | ssh benutzer@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3. Testen & Login

ssh -p PORT benutzer@server 

Die Verbindung sollte ohne Passwort funktionieren.

Alte & ungültige Schlüssel entfernen

Server: Schlüssel manuell entfernen

Ich öffne die Datei direkt auf dem Server mit einem Texteditor.

ssh -p PORT benutzer@server "vim ~/.ssh/authorized_keys"

Server: Berechtigungen korrigieren

Nach der Bearbeitung stelle ich sicher, dass die Datei die richtigen Berechtigungen hat.

ssh -p PORT benutzer@server "chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh"

Client

Client: Alten Schlüssel entfernen

Bevor ich den Schlüssel lokal lösche, prüfe ich, ob er noch im SSH-Agent geladen ist.

ssh-add -l | grep "alter-schluessel"

Falls der Schlüssel geladen ist, entferne ich ihn zuerst aus dem Agent.

ssh-add -d ~/.ssh/alter-schluessel

Danach lösche ich die Schlüsseldateien. Die Option -i fragt vor dem Löschen sicherheitshalber nach.

rm -i ~/.ssh/alter-schluessel ~/.ssh/alter-schluessel.pub
fooyin Screenshot

Ich bin ja immer auf der Suche nach guten Musikplayern. Nicht einfach nur Abspielsoftware, sondern richtige Werkzeuge für meine Sammlung. Jetzt bin ich auf fooyin gestossen, und die Funktionenliste hat mich neugierig gemacht. Es scheint ein Player zu sein, der vieles richtig macht, besonders was Einfachheit, Flexibilität und Kontrolle angeht.

Das Konzept von fooyin ist simpel und zugleich ambitioniert. Es kombiniert flexible Wiedergabe- und Bibliothekswerkzeuge mit einer Oberfläche, die man sich ganz nach den eigenen Bedürfnissen formen kann.

Dateiformate

fooyin unterstützt alle gängigen Formate wie FLAC, MP3, MP4, Vorbis, Opus, WavPack und viele mehr. Was ich auch besonders interessant finde, ist die native Unterstützung für VGM- und Tracker/Modul-Formate über optionale Plugins. Hin und wieder brauche ich das auch. Dazu kommen eine verlustfreie, bit-perfekte Wiedergabe und die Möglichkeit, direkt aus Archiven oder mit CUE-Sheets abzuspielen. Auch ReplayGain ist mit an Bord. Zusätzlich gibt es noch konfigurierbare Fades und Crossfades sowie die DSP-Ketten für Effekte. Es gib eine Wellenform-Seekbar, ein Spektrum und andere Visualisierungen.

Bibliothek, Playlists und Metadaten

fooyin bietet eine einfache, aber erweiterte Filter- und Suchfunktionen für Bibliothek und Playlists. Das ist ein zentraler Punkt für mich. Auch bei großen Sammlungen muss eine Software gut skalieren und nicht jedes Mal Ewigkeiten brauchen zu scannen oder was neu zu indizieren.

Die Möglichkeit alles ganz schlicht in Zeilen, ohne viel Schnickschnack darzustellen ist für mich das zweitwichtigste Feature!

Ausserdem hat fooyin einen integrierten Tag-Editor und Werkzeuge für Metadaten-Management. Artwork, Titel, Artists, Kommentare, Genre usw. Alles was in den idv3 Tags vorkommt.

Widgets, Scripting und Anpassung

Erwähnt werden sollt auch, dass sich fooyin sich stark personalisieren lässt. Ist für mich normalerweise nicht wichtig, aber damit kann ich auch Informationen, die ich zum Beispiel in einer Liste gar nicht sehen will ausblenden. Oder ich gestalte die gesamte Oberfläche einfach neu.

Mit FooScript gibt es eine eigene Skriptsprache für fortgeschrittene Formatierungen, Anzeigelogik, Abfragen und Autoplaylists. Persönliche Tastaturkürzel sind ebenfalls vorhanden. Und das Plugin-System erweitert die Funktionalität noch einmal beträchtlich.

Es gibt noch mehr Features, aber die sind für mich nicht wichtig.

Genre Anzeige

Wem das Genre Tag bei der Auswhahl bzw der Anzeige fehlt, der kann das ganz einfach konfigurieren. Ganz einfach über das Menü

Edit - Settings - Playlist - Columns .. unten auf das + Symbol klicken und im Namensfeld “Genre” und im Display Script Feld %genre% eingeben, dann Apply und OK klicken und schon ist das Feld in den Listen auswählbar.

Download

fooyin gibt es für Linux (Flatpak & Distro Packages) und Windows.

fooyin Screenshot

Ich bin ja immer auf der Suche nach guten Musikplayern. Nicht einfach nur Abspielsoftware, sondern richtige Werkzeuge für meine Sammlung. Jetzt bin ich auf fooyin gestossen, und die Funktionenliste hat mich neugierig gemacht. Es scheint ein Player zu sein, der vieles richtig macht, besonders was Einfachheit, Flexibilität und Kontrolle angeht.

Das Konzept von fooyin ist simpel und zugleich ambitioniert. Es kombiniert flexible Wiedergabe- und Bibliothekswerkzeuge mit einer Oberfläche, die man sich ganz nach den eigenen Bedürfnissen formen kann.

Dateiformate

fooyin unterstützt alle gängigen Formate wie FLAC, MP3, MP4, Vorbis, Opus, WavPack und viele mehr. Was ich auch besonders interessant finde, ist die native Unterstützung für VGM- und Tracker/Modul-Formate über optionale Plugins. Hin und wieder brauche ich das auch. Dazu kommen eine verlustfreie, bit-perfekte Wiedergabe und die Möglichkeit, direkt aus Archiven oder mit CUE-Sheets abzuspielen. Auch ReplayGain ist mit an Bord. Zusätzlich gibt es noch konfigurierbare Fades und Crossfades sowie die DSP-Ketten für Effekte. Es gib eine Wellenform-Seekbar, ein Spektrum und andere Visualisierungen.

Bibliothek, Playlists und Metadaten

fooyin bietet eine einfache, aber erweiterte Filter- und Suchfunktionen für Bibliothek und Playlists. Das ist ein zentraler Punkt für mich. Auch bei großen Sammlungen muss eine Software gut skalieren und nicht jedes Mal Ewigkeiten brauchen zu scannen oder was neu zu indizieren.

Die Möglichkeit alles ganz schlicht in Zeilen, ohne viel Schnickschnack darzustellen ist für mich das zweitwichtigste Feature!

Ausserdem hat fooyin einen integrierten Tag-Editor und Werkzeuge für Metadaten-Management. Artwork, Titel, Artists, Kommentare, Genre usw. Alles was in den idv3 Tags vorkommt.

Widgets, Scripting und Anpassung

Erwähnt werden sollt auch, dass sich fooyin sich stark personalisieren lässt. Ist für mich normalerweise nicht wichtig, aber damit kann ich auch Informationen, die ich zum Beispiel in einer Liste gar nicht sehen will ausblenden. Oder ich gestalte die gesamte Oberfläche einfach neu.

Mit FooScript gibt es eine eigene Skriptsprache für fortgeschrittene Formatierungen, Anzeigelogik, Abfragen und Autoplaylists. Persönliche Tastaturkürzel sind ebenfalls vorhanden. Und das Plugin-System erweitert die Funktionalität noch einmal beträchtlich.

Es gibt noch mehr Features, aber die sind für mich nicht wichtig.

Genre Anzeige

Wem das Genre Tag bei der Auswhahl bzw der Anzeige fehlt, der kann das ganz einfach konfigurieren. Ganz einfach über das Menü

Edit - Settings - Playlist - Columns .. unten auf das + Symbol klicken und im Namensfeld “Genre” und im Display Script Feld %genre% eingeben, dann Apply und OK klicken und schon ist das Feld in den Listen auswählbar.

Download

fooyin gibt es für Linux (Flatpak & Distro Packages) und Windows.