rsync

"wget http://rsync.samba.org/ftp/rsync/rsync-3.0.2.tar.gz"
"tar -xvzf rsync-3.0.2.tar.gz"
"cd rsync-3.0.2"
"./configure" oder bei SuSE "./configure --bindir=/usr/bin --sbindir=/usr/sbin --libdir=/usr/lib64 --includedir=/usr/include"
"make"
"make install"

#Nützlicher Befehl##########################################
"rsync -avrz --partial -e ssh -v -r root@remote.wenning.corp:/root/public/to_rts /root/public/"
"rsync -avrz --partial -e ssh -v -r root@wennhmb.dyndns.org:/root/alex/uploads/* /root/downloads/" = Partieller Download/Upload via rsync in einem Secure SSH Tunnel (Gut für große Dateien, da der download/upload da weitermacht wo er aufgehört hat)
"time rsync -avrz -c --partial --progress --log-file=/var/log/rsync.log -e ssh -v -r root@172.17.190.10:'/usr/files/Tech\ Docs/*' /root/temp/rsync_test/ " = Erweiterte Optionen
"time rsync -avrz -c --partial --progress --log-file=/var/log/rsync.log --delete -e ssh -v -r root@172.17.190.10:'/usr/files/Tech\ Docs/*' /root/temp/rsync_test/" = Löscht die Datein im Zielverzeichnis wenn sie in der Quelle nicht mehr existieren.
"time rsync -avrz -c --partial --progress --log-file=/var/log/rsync.log --stats --exclude=exclude_verz -e ssh -v -r root@172.17.190.17:/tmp/* /root/temp/ " = Mit Statistik Anzeige und Exclue Unterverzeichnis .
"time rsync -avrzc --partial --progress --log-file=/var/log/rsync.log --stats /mnt/di3_export/ABAP/ /export/" = rsync via Verzeichnisen ohne SSH.
"time rsync -avrzc --partial --progress --log-file=/var/log/rsync.log --stats -e ssh -v -r root@172.17.190.45:'/usr/local/etc/icinga2/conf.d' /tmp/"
"time rsync -avrzc --dry-run --partial --progress --log-file=/var/log/rsync.log --stats -e ssh -v -r root@172.17.190.45:'/usr/local/etc/icinga2/conf.d' /tmp/"
"time rsync -avrzcx --dry-run --partial --progress --log-file=/var/log/rsync.log --stats -e ssh -v -r root@172.17.190.45:'/usr/local/etc/icinga2/conf.d' /tmp/"
"time rsync -avvvrzcxDglopt --dry-run --partial --progress --log-file=/var/log/rsync.log --stats /usr/local/etc/icinga2/ /tmp/icinga_rsync/"

	-x = nimmt noch untereingehängte Filesystems mit, sonst nicht.
	-c =  "-c is for "checksumming". "128-bit MD4 checksum"
	--dry-run = Trocken lauf. Test lauf
	
	Logfile Infos:
		> - the item is received
		f - it is a regular file
		s - the file size is different
		t - the time stamp is different
		. - the item is not being updated (though it might have attributes 
		that are being modified)
		d - it is a directory
		t - the time stamp is different
		> - the item is received
		f - a regular file
		+++++++++ - this is a newly created item
		o means the owner is different and is being updated to the sender's value
		g means t7he group is different and is being updated to the sender's value
		p means the permissions are different and are being updated to the sender's value 
		c means either that a regular file has a different checksum or that a symlink, device, or special file has a changed value. 
		L for symbolic link
		D for device
		S for special file (e.g. socket or fifo)
		a means that the ACL information changed
		x means that the extended attribute information changed
		
		
		"lynx https://www.ostc.de/howtos/rsync-HOWTO.html"
		
		+-------------------+------------------------------------------------------+
		| Option (lang+kurz)| Bedeutung                                            |
		+-------------------+------------------------------------------------------+
		| --help            | Hilfe anzeigen                                       |
		+-------------------+------------------------------------------------------+
		| --archive      -a | Archiv-Modus = -Dgloptr (-Do benötigen root-Rechte!) |
		|                   | device group links owner permission times recursive  |
		+-------------------+------------------------------------------------------+
		|                -D | Geräte + Spezialdateien transferieren (NUR root!)    |
		| --group        -g | Besitzer-Gruppe transferieren                        |
		| --links        -l | Symbolische Links transferieren                      |
		| --owner        -o | Besitzer transferieren (NUR root!)                   |
		| --perms        -p | Zugriffsrechte transferieren                         |
		| --times        -t | Änderungszeit+datum transferieren                    |
		| --recursive    -r | Verzeichnis-Bäume replizieren                        |
		+-------------------+------------------------------------------------------+
		| --rsh="CMD..." -e | Zu benutzende "Remote Shell" (z.B. ssh inkl. Opt.)   |
		| --rsync-path=PATH | Zu benutzendes remote rsync-Kommando (/usr/bin/rsync)|
		| --compress     -z | Komprimierung der Datenübertragung (lokal sinnlos!)  |
		+-------------------+------------------------------------------------------+
		| --quiet        -q | Ablaufmeldungen unterdrücken (nur Fehlermeldungen)   |
		| --verbose      -v | Meldung pro transferierter Datei (--itemize-changes) |
		| 2x --verbose  -vv | Meldung mit übersprungenen Dateien                   |
		| 3x --verbose -vvv | Meldung mit Debuginfo (sehr viel!)                   |
		+-------------------+------------------------------------------------------+
		
		+-----------------+---------------------------------------------------------+
		| Opt (lang+kurz) | Bedeutung                                               |
		+-----------------+---------------------------------------------------------+
		| --delete        | Dateien löschen, die auf Sender fehlen                  |
		| --delete-during | Dateien WÄHREND Transfer löschen (analog --del)         |
		| --delete-before | Dateien VOR Transfer löschen                            |
		| --delete-after  | Dateien NACH Transfer löschen                           |
		+-----------------+---------------------------------------------------------+
		| --dry-run    -n | Aktionen nur anzeigen, NICHT ausführen                  |
		| --update     -u | Neuere Dateien auf Zielseite NICHT überschreiben        |
		+-----------------+---------------------------------------------------------+
		| --hard-links -H | Hardlinks erhalten (aufwendig!)                         |
		| --sparse     -S | Sparse Dateien erhalten (lange 0-Byte Sequenzen)        |
		| --acls       -A | ACLs transferieren (enthält --perms)                    |
		| --xattrs     -X | Extended Attributes transferieren (ab 3.0.0)            |
		+-----------------+--+------------------------------------------------------+
		| --copy-dirlinks -k | Sender-Symlink auf Verz. in echtes Zielverz. umwand. |
		| --keep-dirlinks -K | Empfänger-Symlink auf Verz. als echtes Verz. behand. |
		+--------------------+------------------------------------------------------+

		+---------------------+------------------------------------------------------+
		| Option (lang+kurz)  | Bedeutung                                            |
		+---------------------+------------------------------------------------------+
		| --exclude=MUSTER    | Verz./Dateien gemäß MUSTER ausschließen              |
		| --exclude-from=FILE | Dateien in FILE ausschließen                         |
		| --include=MUSTER    | Dateien gemäß MUSTER einschließen                    |
		| --include-from=FILE | Dateien in FILE einschließen                         |
		| --filter=RULE    -f | Dateien gemäß RULE auswählen/ausschließen            |
		| --cvs-exclude    -C | CVS-Dateien ausschließen                             |
		+---------------------+------------------------------------------------------+
		| --bwlimit=NNN       | Transferbandbreite beschränken (KByte/sec)           |
		| --numeric-ids       | UID/GID statt User/Group-Namen transferieren (speed) |
		| --partial       (-P)| Teilweise übertragene Dateien erhalten (Abbruch!)    |
		+---------------------+------------------------------------------------------+
		| --progress      (-P)| Fortschritts-Meldungen ausgeben (impl. --verbose)    |
		| --stats             | Transfer-Statistik ausgeben                          |
		|                  -P | Fortschritts-Meldungen ausg. [--progress + --partial]|
		| --itemize-changes -i| Übersicht aller Update-Änderungen (--verbose)        |
		+---------------------+------------------------------------------------------+

##########################################################################################
#Backup DATABASE

Auf Striker:
"time rsync -avvvrzcxDglopt --partial --progress --log-file=/root/DATABASE_BACKUP/rsync.log --stats /root/DATABASE/ /root/DATABASE_BACKUP/"
Dauer nach vorherigen Massenabgleich ca. 28h
	ggf. "cp -frv /root/DATABASE/ /root/DATABASE_BACKUP/" danach aber auf jeden Fall nochmal rsync zum checken.

	Auf Server an dem die backup Platte hängt:
		"cp -frv ~/cloud ~/DATABASE_BACKUP/DATABASE_8"
		"time rsync -avvvrzcxDglopt --partial --progress --log-file=/var/log/rsync.log --stats /root/cloud/ /root/DATABASE_BACKUP/DATABASE_8"
	
Manuelles überprüfen.

Auf Striker:
"cd ~/DATABASE"
"time ls -alR /root/DATABASE/ > /root/DATABASE_BACKUP/file_list_DATABASE_`date +%Y%m%d-%H_%M_%S_%N`.txt"
"time ls -alR /root/DATABASE_BACKUP/ > /root/DATABASE_BACKUP/file_list_DATABASE_BACKUP_`date +%Y%m%d-%H_%M_%S_%N`.txt"
"cat /root/DATABASE_BACKUP/file_list_DATABASE_20170328.txt | wc -l"
"cat /root/DATABASE_BACKUP/file_list_DATABASE_BACKUP__20170328.txt | wc -l"
#Die beiden Files sollten in etwa gleich viele Dateien haben.
"cd ~/DATABASE"
"time find . -type f -print0 | xargs -0 -P 2 -n 10 md5sum > /root/DATABASE_BACKUP/md5_sum_DATABASE_`date +%Y%m%d-%H_%M_%S_%N`.txt" = Startet md5sum mit 10 Argumenten/Threads auf 2 CPUs
"cd ~/DATABASE_BACKUP"
"time find . -type f -print0 | xargs -0 -P 2 -n 10 md5sum > /root/DATABASE_BACKUP/md5_sum_DATABASE_BACKUP_`date +%Y%m%d-%H_%M_%S_%N`.txt"
"cat md5_sum_DATABASE_20170406.txt md5_sum_DATABASE_BACKUP_20170411.txt | sort | uniq -u > unterschied.txt"
"less unterschied.txt"
#Der Unterschied sollte nicht zu groß sein

Post Revisions:

Tags:  , , , ,