Rsync - Dateien auf Ziel behalten, die älter sind als auf Quelle
Hallo allerseits,
ich habe eine Frage bezüglich RSYNC unter MacOS X (z.B. SnowLeopard oder Mountain Lion...).
Gibt es eine Möglichkeit, mit rsync auf dem Ziel auch Dateien zu behalten, die älter und / oder größendifferent sind, als die gleichnamige Datei in der Quelle?
Ich dachte, mich entsinnen zu können, dass ich da mal was gelesen habe, finde das aber nicht mehr. Ich meine, mich zu erinnern, dass da für diese Fälle an die ältere Datei auf dem Ziel jeweils ein _backup angehängt worden ist.
Grüße und vielen Dank schonmal
ich habe eine Frage bezüglich RSYNC unter MacOS X (z.B. SnowLeopard oder Mountain Lion...).
Gibt es eine Möglichkeit, mit rsync auf dem Ziel auch Dateien zu behalten, die älter und / oder größendifferent sind, als die gleichnamige Datei in der Quelle?
Ich dachte, mich entsinnen zu können, dass ich da mal was gelesen habe, finde das aber nicht mehr. Ich meine, mich zu erinnern, dass da für diese Fälle an die ältere Datei auf dem Ziel jeweils ein _backup angehängt worden ist.
Grüße und vielen Dank schonmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 211512
Url: https://administrator.de/forum/rsync-dateien-auf-ziel-behalten-die-aelter-sind-als-auf-quelle-211512.html
Ausgedruckt am: 24.12.2024 um 03:12 Uhr
17 Kommentare
Neuester Kommentar
Hallo,
rsync hat ws die selben Parameter unter Linux:
http://linux.die.net/man/1/rsync
Gruß
rsync hat ws die selben Parameter unter Linux:
-u, --update skip files that are newer on the receiver
--inplace update destination files in-place
--append append data onto shorter files
--append-verify --append w/old data in file checksum
http://linux.die.net/man/1/rsync
Gruß
Die Parameter von rsync sind weitgehend überall gleich. Für Dich dürfte
in Frage kommen.
lks
Nachtrag:
--ignore-existing skip updating files that exist on receiver
in Frage kommen.
lks
Nachtrag:
-b, --backup make backups (see --suffix & --backup-dir)
--backup-dir=DIR make backups into hierarchy based in DIR
--suffix=SUFFIX backup suffix (default ~ w/o --backup-dir)
Zitat von @Mondragor:
Das, was mir da das logischste scheint,
wäre die entsprechende Option
-b --suffix='_backup'
Das, was mir da das logischste scheint,
wäre die entsprechende Option
-b --suffix='_backup'
Darauf würde auch tippen.
Was aber würde da passieren, wenn sich eine Datei mehrfach verändert?
..._backup; ..._backup_backup; ..._backup_backup_backup ?
Und wie sähe dabei die Eigenschaft "letzter Schreibzugriff" aus? Wäre ja vorteilhaft, wenn man sehen
könnte, wann die zuletzt "beschrieben" wurde.
..._backup; ..._backup_backup; ..._backup_backup_backup ?
Und wie sähe dabei die Eigenschaft "letzter Schreibzugriff" aus? Wäre ja vorteilhaft, wenn man sehen
könnte, wann die zuletzt "beschrieben" wurde.
Am besten mit Testdaten ausprobieren. Nichts fördert das Verständnis mehr als es selbst gemacht zu haben.
lks
Hallo,
villeicht hilft dir das weiter:
So sieht mein Standard Linux Backup aus. Und ich kann auch die verschiedenen Tage herstellen.
Gruß
villeicht hilft dir das weiter:
#!/bin/bash
SERVER=("srv1.domain.at" "srv2.domain.at")
today=`date +%u`
if [$today == "5"]; then
x=`date +"%V"`
y=`date +"%V" -d $(date +"%Y%m01")`
week=$((x-y))
month=`date +%m`
today="$today-$month-$week"
fi
RSYNC_OPTIONS="-avzu"
for i in ${SERVER[@]}
do
mkdir -p /home/backup/backup-$today/$i/
rsync $RSYNC_OPTIONS -e "ssh -i /root/backup/crt/$i.cert" root@$i:/DATA /home/backup/backup-$today/$i/
done
So sieht mein Standard Linux Backup aus. Und ich kann auch die verschiedenen Tage herstellen.
Gruß
Hallo,
ich arbeite auch gerade wieder mal an meinem Backup.
Ziel ist es die Datein die identisch sind per HardLinks zu verknüpfen.
Dadurch sollte ich doch einiges an Speicherplatz sparen da alle Daten nur einmal vorhanden sind.
Ich poste das Script hier sobald ich es fertig habe.
Gruß
PS.: Bei mir geht es inzwischen um ca 20TB deshalb muss ich mir langsam was einfallen lassen ;)
ich arbeite auch gerade wieder mal an meinem Backup.
Ziel ist es die Datein die identisch sind per HardLinks zu verknüpfen.
Dadurch sollte ich doch einiges an Speicherplatz sparen da alle Daten nur einmal vorhanden sind.
Ich poste das Script hier sobald ich es fertig habe.
Gruß
PS.: Bei mir geht es inzwischen um ca 20TB deshalb muss ich mir langsam was einfallen lassen ;)
Zitat von @Hitman4021:
Hallo,
ich arbeite auch gerade wieder mal an meinem Backup.
Ziel ist es die Datein die identisch sind per HardLinks zu verknüpfen.
Hallo,
ich arbeite auch gerade wieder mal an meinem Backup.
Ziel ist es die Datein die identisch sind per HardLinks zu verknüpfen.
Also ich mache das so, daß ich zuerst mit cp -avl einen neuen Backup-Ordner aus dem letzten Backup-Ordner erzeuge und dann per rsync --av --delete das aktuelle Backup da einspiele. Damit belegen identische dateien keinen doppelten Platz und alles was sich geändert hat, ist mehrfach vorhanden. Und durch die ANzahl derordner kann man bestimmen, wie weit der backup zurückrecht.
lks
Nachtrag: Man kann natürluch auch fdupes -L düberlaufen lassen, um weitere identsche Dateien per hardlink zu verknüpfen.
Hallo,
Wie auch immer. So sieht das jetzt mal ungefähr aus. Ist aber weder fertig getestet noch bereinigt:
Gruß
Nachtrag: Man kann natürluch auch fdupes -L düberlaufen lassen, um weitere identsche Dateien per hardlink zu verknüpfen.
Kannte ich bis jetzt nicht. Hätte mir gerade etwas Arbeit gespart.Wie auch immer. So sieht das jetzt mal ungefähr aus. Ist aber weder fertig getestet noch bereinigt:
#!/bin/bash
SERVER=("srv.domain.at")
today=`date +%u`
if [ $today == "5" ];
then
x=`date +"%V"`
y=`date +"%V" -d $(date +"%Y%m01")`
week=$((x-y))
month=`date +%m`
today="$today-$month-$week"
fi
if [ $today = "1" ]
then
YESTERDAY="7"
else
YESTERDAY=$(($today-1))
fi
RSYNC_OPTIONS="-avzu"
BIN_DIR="/root/bin/cron"
CRT_DIR="$BIN_DIR/crt/"
DEST_DIR="/home/backup/backup-$today"
YESTERDAY_DEST_DIR="/home/backup/backup-$YESTERDAY/"
SEARCH_TODAY="backup-$today"
SEARCH_YESTERDAY="backup-$YESTERDAY"
for i in ${SERVER[@]}
do
SRV_DEST_DIR="$DEST_DIR/$i"
SRV_YESTERDAY_DEST_DIR="$YESTERDAY_DEST_DIR/$i/"
mkdir -p $SRV_DEST_DIR/DATA/
#Sync LOCAL From Yesterday
rsync $RSYNC_OPTIONS $SRV_YESTERDAY_DEST_DIR $SRV_DEST_DIR
#Sync From other Server
rsync $RSYNC_OPTIONS -e "ssh -i $CRT_DIR/$i.cert" root@$i:/DATA/ $SRV_DEST_DIR/
#Compare with YesterDay
for yesterDayFile in $(find $YESTERDAY_DEST_DIR/$i/* -type f -print);
do
todayFile=`echo $yesterDayFile | sed "s/$SEARCH_YESTERDAY/$SEARCH_TODAY/"`
todayMD5=`md5sum $todayFile | awk '{ print $1 }'`
yesterDayMD5=`md5sum $yesterDayFile | awk '{ print $1 }'`
if [ $todayMD5 = $yesterDayMD5 ];
then
ln -f $yesterDayFile $todayFile
fi
done
done
Gruß
Hallo,
ich habe den Compare Tiel nochmal überarbeitet, beim Testen war mir die Performance zu schlecht.
Außerdem wurden Fehler erzeugt wenn eine Datei nicht existiert hat.
Aber da kann dir bestimmt jemand weiterhelfen der sich mit OS X besser auskennt als ich.
Gruß
ich habe den Compare Tiel nochmal überarbeitet, beim Testen war mir die Performance zu schlecht.
Außerdem wurden Fehler erzeugt wenn eine Datei nicht existiert hat.
#Compare with YesterDay and Replace Duplicates with HardLinks
echo "Link $i"
echo `date`
for yesterDayFile in $(find $YESTERDAY_DEST_DIR/$i/* -type f -print);
do
todayFile=`echo $yesterDayFile | sed "s/$SEARCH_YESTERDAY/$SEARCH_TODAY/"`
if [ -f $todayFile ] && [ -f $yesterDayFile ];
then
if [ $todayFile -ef $yesterDayFile ];
then
continue
else
cmp -s $todayFile $yesterDayFile
if [ $? = 0 ];
then
ln -f $yesterDayFile $todayFile
fi
fi
fi
done
Wir benutzen Helios mit pcshare und ethershare. Bei einigen Dateien kommt es vor, dass die auf dem Ziel ohne Umlaute / Sonderzeichen erscheinen und dann wird der rsync sie immer wieder rüber schieben. Auch ist das keine ganz saubere sache.
Weiß jemand, wie ich das wegbekommen kann und die Zeichen sauber dargestellt bekommen kann???
Du musst auf beiden Seiten das selbe Character Set benutzen.Weiß jemand, wie ich das wegbekommen kann und die Zeichen sauber dargestellt bekommen kann???
Aber da kann dir bestimmt jemand weiterhelfen der sich mit OS X besser auskennt als ich.
Gruß