40 lines
No EOL
1.3 KiB
Bash
Executable file
40 lines
No EOL
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
|
|
CONF_FILE="$SCRIPT_DIR/sync.conf"
|
|
|
|
if [ ! -f "$CONF_FILE" ]; then
|
|
zenity --error --text="sync.conf nicht gefunden!"
|
|
exit 1
|
|
fi
|
|
|
|
source "$CONF_FILE"
|
|
|
|
# 1. Passwort abfragen
|
|
SSH_PASS=$(zenity --password --title="SSH Authentifizierung" --text="Passwort für $SSH_USER@$SSH_HOST:")
|
|
|
|
# Abbrechen wenn kein Passwort eingegeben wurde
|
|
[ -z "$SSH_PASS" ] && exit 0
|
|
|
|
LOCAL_DIR="$SCRIPT_DIR/"
|
|
|
|
# 2. Synchronisation (Download & Upload)
|
|
# Wir fügen '-o StrictHostKeyChecking=no' hinzu, damit SSH nicht bei unbekannten Hosts blockiert.
|
|
zenity --info --text="Synchronisation wird gestartet..." --timeout=2
|
|
|
|
# Download
|
|
sshpass -p "$SSH_PASS" rsync -auvz -e "ssh -p $SSH_PORT -o StrictHostKeyChecking=no" "$SSH_USER@$SSH_HOST:$REMOTE_DIR" "$LOCAL_DIR" 2>/tmp/rsync_error
|
|
|
|
# Upload
|
|
sshpass -p "$SSH_PASS" rsync -auvz -e "ssh -p $SSH_PORT -o StrictHostKeyChecking=no" "$LOCAL_DIR" "$SSH_USER@$SSH_HOST:$REMOTE_DIR" 2>>/tmp/rsync_error
|
|
|
|
# 3. Erfolgskontrolle
|
|
if [ $? -eq 0 ]; then
|
|
zenity --info --title="Erfolg" --text="Synchronisation erfolgreich abgeschlossen!"
|
|
else
|
|
ERROR_MSG=$(cat /tmp/rsync_error)
|
|
zenity --error --title="Fehler" --text="Synchronisation fehlgeschlagen!\n\nDetails:\n$ERROR_MSG"
|
|
fi
|
|
|
|
# Temporäre Fehlerdatei löschen
|
|
rm -f /tmp/rsync_error |