124 lines
4.4 KiB
Bash
124 lines
4.4 KiB
Bash
#!/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."
|