Archivierungsskript: audio_archiver.sh
💿 Zweck
Dieses Bash-Skript automatisiert die Archivierung von Audio-Dateien (MP3) aus einem Quellverzeichnis auf ISO-Images (gezielte Größe einer Single-Layer DVD von 4,7 GB).
Das Skript stellt sicher, dass jede Datei eindeutig indiziert wird, indem die MP3-Tags ausgelesen und die genaue Position (ISO-ID und Dateinummer) in einem zentralen Katalog gespeichert wird.
✨ Funktionen im Überblick
- Automatische Überwachung: Tägliche Verarbeitung neuer Dateien (idealerweise per Cron-Job).
- Volumenmanagement: Prüft die Größe des Staging-Verzeichnisses und schließt die aktuelle ISO ab, sobald die 4,7 GB Grenze erreicht wird.
- Metadaten-Indexierung: Verwendet
exiftoolzur Extraktion von Künstler und Titel und speichert diese zusammen mit der Archivposition. - Eindeutige Benennung: Jede archivierte Datei erhält eine fortlaufende, eindeutige Nummer auf der jeweiligen ISO.
- Zustandsverwaltung: Nutzt eine Konfigurationsdatei, um den Fortschritt (aktuelle ISO-ID und Dateizähler) zu speichern.
⚙️ Voraussetzungen
Das Skript erfordert die folgenden Kommandozeilen-Tools, die auf den meisten Linux-Distributionen verfügbar oder leicht installierbar sind:
exiftool: Zum Auslesen der ID3-Tags (Künstler/Titel) aus den MP3-Dateien.genisoimage(odermkisofs): Zum Erstellen des finalen ISO-9660-Images.- Standard-Utilities:
bash,find,cp,rm,du,stat,awk,grep. - Logging-Skript: Das individuelle Skript
logger.shmuss unter dem angegebenen Pfad verfügbar sein.
🚀 Installation und Einrichtung
1. Konfiguration anpassen
Passen Sie die Pfade im Abschnitt --- KONFIGURATION --- direkt im Skript audio_archiver.sh an Ihre Systemumgebung an.
| Variable | Beschreibung | Beispielpfad |
|---|---|---|
SOURCE_DIR |
Das zu überwachende Quellverzeichnis. | /srv/MEDIA/Audio/Radio-Archiv/2025/10 |
STAGING_DIR |
Temporäres Verzeichnis zur Sammlung der ISO-Inhalte. | /srv/MEDIA/Audio/ISO/Staging |
ISO_OUTPUT_DIR |
Ablageort für die fertiggestellten .iso-Dateien. |
/srv/MEDIA/Audio/ISO/burn |
CONFIG_FILE |
Datei zur Speicherung des Archivierungsstands. | /root/Gitea/audio_archiver/current_iso.conf |
INDEX_FILE |
Der zentrale Katalog (CSV-Format). | /root/Gitea/audio_archiver/archive_index.csv |
2. Berechtigungen setzen
Stellen Sie sicher, dass das Skript ausführbar ist und der ausführende Benutzer Lese-/Schreibrechte für alle konfigurierten Verzeichnisse und Dateien besitzt.
chmod +x /pfad/zum/audio_archiver.sh
3. Cron-Job einrichten
Planen Sie die tägliche Ausführung des Skripts (z. B. um 03:00 Uhr nachts).
crontab -e
Fügen Sie folgende Zeile hinzu (Pfad anpassen):
0 3 * * * /pfad/zum/audio_archiver.sh
📂 Archivierungsindex (archive_index.csv)
Die Indexdatei ist der zentrale Katalog, um jede archivierte Datei wiederzufinden. Das Format ist semikolon-getrennt (CSV):
Künstler;Titel;ISO_ID;Dateinummer;Originalpfad
Beispiel-Eintrag:
Queen;Bohemian Rhapsody;ISO_001;000042;/srv/MEDIA/Audio/Singles/Queen/bohemian_rhapsody.mp3
Mithilfe dieses Indexes kann der Nutzer schnell feststellen, dass der Song auf der ISO mit der ID ISO_001 unter dem Dateinamen ISO_001_000042.mp3 zu finden ist.