Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Rsync - Dateien auf Ziel behalten, die älter sind als auf Quelle

Frage Apple Mac OS X

Mitglied: Mondragor

Mondragor (Level 1) - Jetzt verbinden

15.07.2013, aktualisiert 07.02.2014, 3371 Aufrufe, 17 Kommentare, 1 Danke

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
Mitglied: Hitman4021
15.07.2013 um 14:46 Uhr
Hallo,

rsync hat ws die selben Parameter unter Linux:
01.
 -u, --update                skip files that are newer on the receiver 
02.
     --inplace               update destination files in-place 
03.
     --append                append data onto shorter files 
04.
     --append-verify         --append w/old data in file checksum
http://linux.die.net/man/1/rsync

Gruß
Bitte warten ..
Mitglied: Lochkartenstanzer
15.07.2013, aktualisiert um 15:01 Uhr
Die Parameter von rsync sind weitgehend überall gleich. Für Dich dürfte
     --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)
Bitte warten ..
Mitglied: Mondragor
15.07.2013 um 15:13 Uhr
Hallo und danke schonmal für Eure schnellen Antworten.

Mein Problem ist vielleicht, dass ich nicht sicher bin, ob ich die man-file richtig verstehe oder dass die dort stehenden Erklärungen mir nicht ausführlich genug sind.
Ich hab mir das schon angeschaut.
Was ich erreichen will, ist, dass die neueren schon mit übertragen werden, die alten aber in einer entsprechend gekennzeichneten Form bestehen bleiben, quasi als ältere Versionen der Datei. Das, was mir da das logischste scheint, wäre die entsprechende Option
-b --suffix='_backup'
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.

Grüße,
Mondragor
Bitte warten ..
Mitglied: Lochkartenstanzer
15.07.2013 um 15:32 Uhr
Zitat von Mondragor:
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.

Am besten mit Testdaten ausprobieren. Nichts fördert das Verständnis mehr als es selbst gemacht zu haben.

lks
Bitte warten ..
Mitglied: Mondragor
15.07.2013 um 15:37 Uhr
Hallo nochmal Lochkartenstanzer!

Okay, vielen Dank für Deine Hilfe.

Grüße,
Mondragor
Bitte warten ..
Mitglied: Lochkartenstanzer
15.07.2013 um 16:50 Uhr
Nachtrag:

Natürlich wird das nicht mehrfach umbenannt, sondern die "neuen" alten Dateien überschreiben die "alten" alten Dateien. Wenn die alten Dateien wichtig sind, sollten diese weggesichert werden, nachdem das rsync durch ist (oder vielleicht schon vorher ).


lks
Bitte warten ..
Mitglied: Hitman4021
15.07.2013 um 18:36 Uhr
Hallo,

villeicht hilft dir das weiter:

01.
#!/bin/bash 
02.
SERVER=("srv1.domain.at" "srv2.domain.at") 
03.
today=`date +%u` 
04.
if [$today == "5"]; then 
05.
        x=`date +"%V"` 
06.
        y=`date +"%V" -d $(date +"%Y%m01")` 
07.
        week=$((x-y)) 
08.
        month=`date +%m` 
09.
        today="$today-$month-$week" 
10.
fi 
11.
RSYNC_OPTIONS="-avzu" 
12.
 
13.
 
14.
for i in ${SERVER[@]} 
15.
    do 
16.
        mkdir -p /home/backup/backup-$today/$i/ 
17.
        rsync $RSYNC_OPTIONS -e "ssh -i /root/backup/crt/$i.cert" root@$i:/DATA /home/backup/backup-$today/$i/ 
18.
done
So sieht mein Standard Linux Backup aus. Und ich kann auch die verschiedenen Tage herstellen.

Gruß
Bitte warten ..
Mitglied: Mondragor
16.07.2013, aktualisiert um 12:39 Uhr
Hallo nochmal.
Also offensichtlich ist, dass man bei gleichbleibendem Suffix alte Backups überschreibt und den Ansatz von Hitman find ich gut.
Mein Ansatz sieht etwas anders aus. Ich muss dazu sagen, dass etwa 6.5 TB an Daten via RSYNC synchronisiert werden müssen.
Daher habe ich nicht den Platz, um im Ziel mehrere vollständige Backups anzulegen, Einzig die veränderten Dateien sollen in
mehreren Versionen (je nach mdate und Größe) gesichert werden. Es kam schon vor, dass sowas wiederhersestellt werden sollte,
ich die älteren Versionen aber nicht mehr über die Kommerzielle Backupsoftware hatte.
Daher sichere ich das nun zusätzlich mit rsync alle 2 Wochen auf externe Raid-Türmchen.
Für das Sichern von mehr als 2 Versionen habe ich mir folgende Befehlszeile überlegt, die auch funktioniert.
01.
rsync -avvz -b --suffix=$(date +"__backup_vom_%d.%m.%Y_um_%T") /quelle /ziel
Da nun jedes potenzielle Backup einer Dateiversion anders heißt, wird keine mehr überschrieben.

Vielen Dank Euch für Eure Hilfe und die Denkanstöße.
Bitte warten ..
Mitglied: Hitman4021
16.07.2013 um 09:44 Uhr
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 ;)
Bitte warten ..
Mitglied: Mondragor
16.07.2013 um 10:18 Uhr
Okay, bin auf die Lösung gespannt und lasse den thread solang noch offen.
Wie geht das eigentlich mit quellcode posten und wo gibt es eine Übersicht
über solche "Befehle" fürs Forum??

Grüße,
Mondragor
Bitte warten ..
Mitglied: Lochkartenstanzer
16.07.2013, aktualisiert um 10:49 Uhr
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.

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.
Bitte warten ..
Mitglied: Hitman4021
16.07.2013, aktualisiert um 11:05 Uhr
Hallo,

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:
01.
#!/bin/bash 
02.
SERVER=("srv.domain.at") 
03.
today=`date +%u` 
04.
if [ $today == "5" ];  
05.
then 
06.
    x=`date +"%V"` 
07.
    y=`date +"%V" -d $(date +"%Y%m01")` 
08.
    week=$((x-y)) 
09.
    month=`date +%m` 
10.
    today="$today-$month-$week" 
11.
fi 
12.
if [ $today = "1" ] 
13.
then 
14.
	YESTERDAY="7" 
15.
else 
16.
	YESTERDAY=$(($today-1)) 
17.
fi 
18.
RSYNC_OPTIONS="-avzu" 
19.
BIN_DIR="/root/bin/cron" 
20.
CRT_DIR="$BIN_DIR/crt/" 
21.
DEST_DIR="/home/backup/backup-$today" 
22.
YESTERDAY_DEST_DIR="/home/backup/backup-$YESTERDAY/" 
23.
SEARCH_TODAY="backup-$today" 
24.
SEARCH_YESTERDAY="backup-$YESTERDAY" 
25.
 
26.
for i in ${SERVER[@]} 
27.
    do 
28.
		SRV_DEST_DIR="$DEST_DIR/$i" 
29.
		SRV_YESTERDAY_DEST_DIR="$YESTERDAY_DEST_DIR/$i/" 
30.
        mkdir -p $SRV_DEST_DIR/DATA/ 
31.
		 
32.
		#Sync LOCAL From Yesterday 
33.
		rsync $RSYNC_OPTIONS $SRV_YESTERDAY_DEST_DIR $SRV_DEST_DIR 
34.
		 
35.
		#Sync From other Server 
36.
        rsync $RSYNC_OPTIONS -e "ssh -i $CRT_DIR/$i.cert" root@$i:/DATA/ $SRV_DEST_DIR/ 
37.
 
38.
		#Compare with YesterDay 
39.
		for yesterDayFile in $(find $YESTERDAY_DEST_DIR/$i/* -type f -print); 
40.
		do 
41.
			todayFile=`echo $yesterDayFile | sed "s/$SEARCH_YESTERDAY/$SEARCH_TODAY/"` 
42.
			todayMD5=`md5sum $todayFile | awk '{ print $1 }'` 
43.
			yesterDayMD5=`md5sum $yesterDayFile | awk '{ print $1 }'` 
44.
			if [ $todayMD5 = $yesterDayMD5 ]; 
45.
			then 
46.
				ln -f $yesterDayFile $todayFile 
47.
			fi 
48.
		done 
49.
done
Gruß
Bitte warten ..
Mitglied: Mondragor
16.07.2013 um 13:00 Uhr
Okay, danke.

Eine Frage hätte ich aber noch:
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???
Bitte warten ..
Mitglied: Hitman4021
17.07.2013, aktualisiert um 10:36 Uhr
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.
01.
	#Compare with YesterDay and Replace Duplicates with HardLinks 
02.
	echo "Link $i" 
03.
	echo `date` 
04.
	for yesterDayFile in $(find $YESTERDAY_DEST_DIR/$i/* -type f -print); 
05.
	do 
06.
		todayFile=`echo $yesterDayFile | sed "s/$SEARCH_YESTERDAY/$SEARCH_TODAY/"` 
07.
		if [ -f $todayFile ] && [ -f $yesterDayFile ]; 
08.
		then 
09.
			if [ $todayFile -ef $yesterDayFile ];  
10.
			then 
11.
				continue 
12.
			else 
13.
				cmp -s $todayFile $yesterDayFile 
14.
				if [ $? = 0 ]; 
15.
				then 
16.
					ln -f $yesterDayFile $todayFile 
17.
				fi 
18.
			fi 
19.
		fi 
20.
	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.
Aber da kann dir bestimmt jemand weiterhelfen der sich mit OS X besser auskennt als ich.

Gruß
Bitte warten ..
Mitglied: Mondragor
18.07.2013 um 08:55 Uhr
Okay, also eines ist eine Freigabe über AFP, die auf dem Mac gemountet ist. Das andere ist ein USB-MassStorage (externes Festplattengehäuse mit Raid-Möglichkeiten) was als MacOS Extended (Journaled) formatiert ist.
Meine nächste Frage wäre also, wie ich erfahre, welches Charset auf welchem Volume aktiviert ist.

Grüße,
Mondragor
Bitte warten ..
Mitglied: Hitman4021
19.07.2013 um 12:55 Uhr
Hallo,

ich hoffe das funktioniert auf Max OS X auch.
Poste mal die Ausgabe von:
01.
echo $LANG 
02.
echo $LC_ALL
Auf beiden Rechnern.

Gruß
Bitte warten ..
Mitglied: Mondragor
07.02.2014, aktualisiert um 10:22 Uhr
Hallo Hitman,

besser spät als nie - wie man so schön sagt.

Nun die AFP-Freigaben unter Helios geben im Helios-Admin für AFP den Zeichensatz
"MacRoman" vor.
Das "Mac OS Roman" ist im Terminal als Zeichensatz auswählbar, aber nicht aktiv.
Glaubst Du, dass es deswegen manchmal Probleme ala "File has varnished" geben könnte?

Ich habe inzwischen einen Einzeiler aus dem Backupbefehl gemacht:
01.
rsync -aXvvuc --times --progress -b --suffix=$(date +"backup_vom_%d.&m.%Y_um_%T") /quelle /ziel
Somit werden also nur Dateien, die eine andere md5sum aufweisen, auch neu kopiert, da der Zeitstempel
nicht immer was zu bedeuten hat. Das löscht also ältere Versionen nicht. Das Problem jetzt ist, dass die
".DS-Store"-Dateien natürlich für sehr viele subdirectories sehr häufig verändert sind bei 20 Freigaben...
Dafür würde ich gerne via --exclude oder --filter quasi diese ausschließen. Hast Du sowas schon mal gemacht?

Grüße,
Mondragor
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch die alle Dateien löscht die Älter als 3 Tage sind (5)

Frage von Azubine zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien (keine Ordner) löschen die älter sind als (4)

Frage von siziigilendirmez zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien mit vorgegebener Größe erstellbar? (3)

Frage von Stefan007 zum Thema Batch & Shell ...

Windows 7
Kopierte Dateien im Hintergrund anzeigen (1)

Frage von MichiBLNN zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...