Guest User

Untitled

a guest
Sep 23rd, 2025
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.13 KB | None | 0 0
  1. #!/usr/bin/env zsh
  2. set -euo pipefail
  3.  
  4. # ================================
  5. # Bidirektionaler Dropbox-Sync
  6. # Änderungen & Fehler farbig, chronologisch
  7. # ================================
  8.  
  9. # --- Lokale Ordner ---
  10. LOCAL1="$HOME/english"
  11. LOCAL2="$HOME/schule"
  12.  
  13. # --- Dropbox-Remote ---
  14. REMOTE1="dropbox:english"
  15. REMOTE2="dropbox:schule"
  16.  
  17. # --- Logdatei ---
  18. LOGFILE="/tmp/sync_dropbox_$(date +'%Y-%m-%d_%H-%M').log"
  19.  
  20. # --- Farben ---
  21. GREEN="\033[0;32m"     # neu
  22. #YELLOW="\033[1;33m"    # geändert
  23. #YELLOW="\033[0;93m"
  24. YELLOW="\033[38;5;214m"   # 256-Farben Orange
  25. RED="\033[0;31m"       # gelöscht/Fehler
  26. BLUE="\033[0;34m"      # umbenannt
  27. NC="\033[0m"           # reset
  28.  
  29. echo "========================================"
  30. echo "Starte Dropbox-Sync:  $(date)"
  31. echo "Lokaler Ordner 1:     $LOCAL1 -> $REMOTE1"
  32. echo "Lokaler Ordner 2:     $LOCAL2 -> $REMOTE2"
  33. echo "Logdatei:             $LOGFILE"
  34. echo "========================================"
  35. echo
  36.  
  37. # --- rclone bisync ausführen (nicht bei Fehlern abbrechen) ---
  38. set +e
  39. rclone bisync "$LOCAL1" "$REMOTE1" --progress --verbose --log-file="$LOGFILE"
  40. RC1=$?
  41. rclone bisync "$LOCAL2" "$REMOTE2" --progress --verbose --log-file="$LOGFILE"
  42. RC2=$?
  43. set -e
  44.  
  45. echo
  46. echo "----------------------------------------"
  47. echo "Änderungen (chronologisch):"
  48.  
  49. # --- Zeilenweise durch das Log gehen ---
  50. while IFS= read -r line; do
  51.     case "$line" in
  52.         *"Copied (new)"* )          echo -e "${GREEN}${line}${NC}" ;;
  53.         *"Copied (replaced existing)"* )     echo -e "${YELLOW}${line}${NC}" ;;
  54.         *"Copied (modified)"* )     echo -e "${YELLOW}${line}${NC}" ;;
  55.         *"Deleted"* )               echo -e "${RED}${line}${NC}" ;;
  56.         *"Renamed"* )               echo -e "${BLUE}${line}${NC}" ;;
  57.         *"ERROR"*|*"CRITICAL"* )    echo -e "${RED}${line}${NC}" ;;
  58.     esac
  59. done < "$LOGFILE"
  60.  
  61. echo "----------------------------------------"
  62.  
  63. # --- Abschlussmeldung ---
  64. if [[ $RC1 -eq 0 && $RC2 -eq 0 ]]; then
  65.     echo "✅ Dropbox-Sync erfolgreich beendet: $(date)"
  66. else
  67.     echo "❌ Dropbox-Sync teilweise oder komplett fehlgeschlagen: $(date)"
  68. fi
  69.  
  70. echo "Logdatei: $LOGFILE"
Advertisement
Add Comment
Please, Sign In to add comment