Skip to content

Instantly share code, notes, and snippets.

@patrickhempel
Created January 24, 2011 09:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save patrickhempel/793019 to your computer and use it in GitHub Desktop.
Save patrickhempel/793019 to your computer and use it in GitHub Desktop.
#!/bin/sh
#############################################################
# compuccino - Server Synchronisierung
#############################################################
# User festlegen, mit dem synchronisiert werden soll
# Muss die entsprechenden Rechte am Ziel-Server haben
# Beispiel: User "mirror"
USER=$1
# Lokales Verzeichnis festlegen, dass synchronisiert werden soll
# Beispiel: "/home/compuccino/"
LOCAL_DIR=$2
# Ziel-Server festlegen
# Beispiel: "www2.compuccino.com"
DESTINATION_SERVER=$3
# Port des Ziel-Servers festlegen
# Beispiel: 22
PORT=$4
# Ziel-Verzeichnis festlegen
# Beispiel: "/home/compuccino/"
DESTINATION_DIR=$5
# Verzeichnisse angeben, die von der Synchronisierung ausgeschlossen werden sollen
# Beispiel: ".ssh/" und ".bash_history)
EXCLUDE_DIR=$6
# Mit einer For-Schleife alle Verzeichnisse durchgehen, die ausgeschlossen werden sollen
for DIR in $EXCLUDE_DIR
do
EXCLUDE_DIRS="$EXCLUDE_DIRS --exclude=$DIR"
done
# Ausgabe
echo "1. User: $USER"
echo "2. Local Dir: $LOCAL_DIR"
echo "3. Destination Server: $DESTINATION_SERVER"
echo "4. Destination Dir: $DESTINATION_DIR"
echo "5. Exclude Dirs: $EXCLUDE_DIRS"
echo "---------------------------------------------"
# Das eigentliche rsync Kommando
rsync -e "/usr/bin/ssh -p$PORT -l $USER -i /home/$USER/.ssh/id_rsa" -a --progress --stats
\ --rsync-path="sudo rsync" $EXCLUDE_DIRS --delete -l -z -v -r -p -o -g -H
\ $LOCAL_DIR $USER@$DESTINATION_SERVER:$DESTINATION_DIR
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment