#!/bin/bash # ========================================== # Anleitung: pack_all.sh # ========================================== # Dieses Skript verarbeitet alle Verzeichnisse in einem angegebenen Quellordner. # Es entscheidet für jedes Verzeichnis: # 1. Ob es gepackt wird, oder # 2. Ob es nur verschoben wird (falls es ausschließlich `.rar`-Dateien enthält). # # Ziel: Effiziente Verarbeitung und Archivierung aller Verzeichnisse in einem Zielverzeichnis. # ========================================== # Verwendung: # ========================================== # Aufruf: # ./pack_all.sh # # Beschreibung: # Das Skript sucht automatisch nach allen Verzeichnissen im Quellverzeichnis # (standardmäßig `/mnt/synology/aufmasse/autoupload`) und verarbeitet sie. # # Voraussetzungen: # - Das Skript `packen.sh` muss vorhanden und funktionsfähig sein. # - Das Quell- und Zielverzeichnis müssen definiert und zugänglich sein. # # Beispiel: # ./pack_all.sh # ========================================== # Ablaufplan: # ========================================== # 1. Überprüfen, ob das Quellverzeichnis (`SOURCE_DIR`) existiert. # 2. Sicherstellen, dass das Zielverzeichnis (`DEST_DIR`) existiert (ggf. erstellen). # 3. Iteration über alle Verzeichnisse im Quellverzeichnis: # a) Prüfen, ob das Verzeichnis bereits im Zielverzeichnis existiert. # - Falls ja: Verzeichnis wird übersprungen. # - Falls nein: Das Verzeichnis wird an `packen.sh` übergeben. # b) Das `packen.sh`-Skript entscheidet, ob: # - Das Verzeichnis gepackt wird, oder # - Nur verschoben wird (falls nur `.rar`-Dateien enthalten sind). # 4. Ausgabe einer Erfolgs- oder Fehlermeldung pro Verzeichnis. # 5. Abschlussmeldung, wenn alle Verzeichnisse verarbeitet wurden. # ========================================== # Anpassung des Zielverzeichnisses: # ========================================== # Standardmäßig werden die verarbeiteten Verzeichnisse unter `/mnt/synology/aufmasse_archiv/` abgelegt. # Um das Zielverzeichnis zu ändern: # 1. Bearbeiten Sie die Zeile: # DEST_DIR="/mnt/synology/aufmasse_archiv" # 2. Ändern Sie den Pfad in das gewünschte Zielverzeichnis. # 3. Beispiel: # DEST_DIR="/backup/archiv" # # Das Quellverzeichnis kann auf ähnliche Weise angepasst werden: # 1. Bearbeiten Sie die Zeile: # SOURCE_DIR="/mnt/synology/aufmasse/autoupload" # 2. Beispiel: # SOURCE_DIR="/daten/eingang" # ========================================== # Voraussetzungen: # ========================================== # - Das `packen.sh`-Skript muss vorhanden und funktionstüchtig sein. # - Schreib- und Leserechte für Quell- und Zielverzeichnisse. # - Skript benötigt Ausführungsrechte: # chmod +x pack_all.sh # # ========================================== # Ende der Anleitung # ========================================== # Quell- und Zielverzeichnisse definieren SOURCE_DIR="/mnt/synology/aufmasse/autoupload" DEST_DIR="/mnt/synology/aufmasse_archiv" PACKEN_SCRIPT="/root/packen.sh" # Überprüfen, ob das Quellverzeichnis existiert if [ ! -d "$SOURCE_DIR" ]; then echo "Fehler: Quellverzeichnis '$SOURCE_DIR' existiert nicht." exit 1 fi # Sicherstellen, dass das Zielverzeichnis existiert if [ ! -d "$DEST_DIR" ]; then mkdir -p "$DEST_DIR" || { echo "Fehler: Zielverzeichnis '$DEST_DIR' konnte nicht erstellt werden."; exit 1; } echo "Zielverzeichnis '$DEST_DIR' wurde erstellt." fi # Überprüfen, ob das packen.sh-Skript existiert if [ ! -x "$PACKEN_SCRIPT" ]; then echo "Fehler: Das Skript '$PACKEN_SCRIPT' ist nicht ausführbar oder existiert nicht." exit 1 fi # Alle Verzeichnisse im Quellverzeichnis verarbeiten for DIR in "$SOURCE_DIR"/*/; do # Prüfen, ob es sich um ein Verzeichnis handelt if [ -d "$DIR" ]; then BASENAME=$(basename "$DIR") ZIELORDNER="$DEST_DIR/$BASENAME" # Prüfen, ob das Verzeichnis bereits im Zielverzeichnis existiert if [ -d "$ZIELORDNER" ]; then echo "Überspringe: Das Projekt '$BASENAME' existiert bereits im Zielverzeichnis '$DEST_DIR'." continue fi # Verzeichnis verarbeiten mit packen.sh echo "Verarbeite: '$DIR'..." "$PACKEN_SCRIPT" j "$DIR" # Fehlerprüfung if [ $? -eq 0 ]; then echo "Erfolgreich verarbeitet: '$DIR'." else echo "Fehler beim Verarbeiten von: '$DIR'." fi fi done echo "Alle Verzeichnisse im Quellverzeichnis '$SOURCE_DIR' wurden verarbeitet."