Quantcast
Channel: Server Support Forum
Viewing all articles
Browse latest Browse all 7443

Server4You FTP-Backup via rsync

$
0
0
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:
Zitat:

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.. :)

Viewing all articles
Browse latest Browse all 7443