Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env zsh
- set -euo pipefail
- # ================================
- # Bidirektionaler Dropbox-Sync
- # Änderungen & Fehler farbig, chronologisch
- # ================================
- # --- Lokale Ordner ---
- LOCAL1="$HOME/english"
- LOCAL2="$HOME/schule"
- # --- Dropbox-Remote ---
- REMOTE1="dropbox:english"
- REMOTE2="dropbox:schule"
- # --- Logdatei ---
- LOGFILE="/tmp/sync_dropbox_$(date +'%Y-%m-%d_%H-%M').log"
- # --- Farben ---
- GREEN="\033[0;32m" # neu
- #YELLOW="\033[1;33m" # geändert
- #YELLOW="\033[0;93m"
- YELLOW="\033[38;5;214m" # 256-Farben Orange
- RED="\033[0;31m" # gelöscht/Fehler
- BLUE="\033[0;34m" # umbenannt
- NC="\033[0m" # reset
- echo "========================================"
- echo "Starte Dropbox-Sync: $(date)"
- echo "Lokaler Ordner 1: $LOCAL1 -> $REMOTE1"
- echo "Lokaler Ordner 2: $LOCAL2 -> $REMOTE2"
- echo "Logdatei: $LOGFILE"
- echo "========================================"
- echo
- # --- rclone bisync ausführen (nicht bei Fehlern abbrechen) ---
- set +e
- rclone bisync "$LOCAL1" "$REMOTE1" --progress --verbose --log-file="$LOGFILE"
- RC1=$?
- rclone bisync "$LOCAL2" "$REMOTE2" --progress --verbose --log-file="$LOGFILE"
- RC2=$?
- set -e
- echo
- echo "----------------------------------------"
- echo "Änderungen (chronologisch):"
- # --- Zeilenweise durch das Log gehen ---
- while IFS= read -r line; do
- case "$line" in
- *"Copied (new)"* ) echo -e "${GREEN}${line}${NC}" ;;
- *"Copied (replaced existing)"* ) echo -e "${YELLOW}${line}${NC}" ;;
- *"Copied (modified)"* ) echo -e "${YELLOW}${line}${NC}" ;;
- *"Deleted"* ) echo -e "${RED}${line}${NC}" ;;
- *"Renamed"* ) echo -e "${BLUE}${line}${NC}" ;;
- *"ERROR"*|*"CRITICAL"* ) echo -e "${RED}${line}${NC}" ;;
- esac
- done < "$LOGFILE"
- echo "----------------------------------------"
- # --- Abschlussmeldung ---
- if [[ $RC1 -eq 0 && $RC2 -eq 0 ]]; then
- echo "✅ Dropbox-Sync erfolgreich beendet: $(date)"
- else
- echo "❌ Dropbox-Sync teilweise oder komplett fehlgeschlagen: $(date)"
- fi
- echo "Logdatei: $LOGFILE"
Advertisement
Add Comment
Please, Sign In to add comment