Server4You FTP-Backup via rsync

witschi87

New Member
Hallo Leute,

ich habe einen Root-Server bei Server4You und mir wird ein Backup-FTP zur Verfügung gestellt, auf dem ich Daten ablegen kann. Allerdings kann ich dorthin nur direkt von meinem Server aus connecten.
Nun Versuche ich verzweifelt ein Backup-Skript zu basteln, welches die Daten mittels rsync auf den FTP übertragt.
Dazu habe ich vorerst mittel curlftpfs in /mnt/ftp_backup den Backup-Server gemounted. Und anschließend das Skript ausgeführt. Die Ordnerstruktur wird auch vollständig angelegt, es wird jedoch keine einzige Datei kopiert.
Den Support habe ich diesbezüglich bereits kontaktiert, jedoch ist kostenlos Hilfe immer recht dürftig:
Sie können nicht mit Symlinks / Hardlinks auf dem FUSE Dateisystem arbeiten da diese von FUSE nicht unterstützt werden.
Mit dieser Information kann ich nur leider recht wenig anfangen...
Code:
#!/bin/bash

SOURCES=(/var/lib/mysql )
# /var/www/vhosts /var/qmail/mailnames )
TARGET="/mnt/ftp_backup"
TMPDIR="/tmp/temp-files"

MONTHROTATE=monthrotate

RSYNCCONF=(--recursive --delete)
MOUNTPOINT="/mnt/ftp_backup"
MAILREC="server@********"

### do not edit ###

MOUNT="/bin/mount";
FGREP="/bin/fgrep";
SSH="/usr/bin/ssh"
LN="/bin/ln";
ECHO="/bin/echo";
DATE="/bin/date";
RM="/bin/rm";
DPKG="/usr/bin/dpkg";
AWK="/usr/bin/awk";
MAIL="/usr/bin/mail";
CUT="/usr/bin/cut";
TR="/usr/bin/tr";
RSYNC="/usr/bin/rsync";

LOG=$0.log
$DATE > $LOG

if [ "${TARGET:${#TARGET}-1:1}" != "/" ]; then
  TARGET=$TARGET/
fi

if [ "$MOUNTPOINT" ]; then
  MOUNTED=$($MOUNT | $FGREP "$MOUNTPOINT");
fi

if [ -z "$MOUNTPOINT" ] || [ "$MOUNTED" ]; then
  if [ -z "$MONTHROTATE" ]; then
    TODAY=$($DATE +%y%m%d)
  else
    TODAY=$($DATE +%d)
  fi

  for SOURCE in "${SOURCES[@]}" do
    $ECHO "$RSYNC -avzR -T \"$TMPDIR\" \"$SOURCE\" ${RSYNCCONF[@]} $TARGET$TODAY"  >> $LOG 
    $RSYNC -vzR -T "$TMPDIR" "$SOURCE" "${RSYNCCONF[@]}" "$TARGET"$TODAY  >> $LOG 2>&1 
    if [ $? -ne 0 ]; then
      ERROR=1
    fi 
  done
 
else
  $ECHO "$MOUNTPOINT not mounted" >> $LOG
  ERROR=1
fi

$DATE >> $LOG
if [ -n "$MAILREC" ]; then
  if [ $ERROR ];then
    $MAIL -s "Error Backup $LOG" $MAILREC < $LOG
  fi
fi

Schon mal vielen Dank für eure Hilfe.. :)
 
statt etwas eigenes zu basteln schau dir mal duply an (Erweiterung zu duplicity). Es unterstützt verschiedene Backends, inkl. rsync oder direkt FTP (du brauchst dann keinen Mount mehr), Voll- und inkrementelle Backups und du kannst auch einzelne Dateien wieder herstellen.

http://duply.net/
 
statt etwas eigenes zu basteln schau dir mal duply an (Erweiterung zu duplicity). Es unterstützt verschiedene Backends, inkl. rsync oder direkt FTP (du brauchst dann keinen Mount mehr), Voll- und inkrementelle Backups und du kannst auch einzelne Dateien wieder herstellen.

http://duply.net/

Das habe ich nun erfolgreich eingerichtet. Backups werden wie gewünscht erstellt. Nun bleibt nur noch eine Frage offen: Für den Fall, dass ein Backup mal fehlschlägt, kann man sich da per E-Mail benachrichtigen lassen?
 
Back
Top