diff --git a/README.md b/README.md new file mode 100644 index 0000000..c7e8389 --- /dev/null +++ b/README.md @@ -0,0 +1,84 @@ +# 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 `exiftool` zur 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: + +1. **`exiftool`**: Zum Auslesen der ID3-Tags (Künstler/Titel) aus den MP3-Dateien. +2. **`genisoimage`** (oder `mkisofs`): Zum Erstellen des finalen ISO-9660-Images. +3. **Standard-Utilities:** `bash`, `find`, `cp`, `rm`, `du`, `stat`, `awk`, `grep`. +4. **Logging-Skript:** Das individuelle Skript `logger.sh` muss 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. + +```bash +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). + +```bash +crontab -e +``` + +Fügen Sie folgende Zeile hinzu (Pfad anpassen): + +```cron +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)**: + +```csv +Künstler;Titel;ISO_ID;Dateinummer;Originalpfad +``` + +**Beispiel-Eintrag:** + +```csv +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. \ No newline at end of file