README.md hinzugefügt

This commit is contained in:
alf
2025-10-23 09:33:57 +00:00
parent 7e04b7f602
commit 483c03eefa

84
README.md Normal file
View File

@ -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.