rsync

Meine Lösung
😉

Der ambitionierter User wills genau wissen 🙂

rsync fĂŒr meine persönlichen Daten im /home/user

Mit der Software rsync lassen sich die persönlichen Daten wunderbar auf eine handelsĂŒbliche externe USB Diks sichern.
Bei wiederholter AusfĂŒhrung werden von der Quelle nur noch die neuen Daten auf das Ziel geschrieben.
Falls in der Quelle Daten gelöscht wurden, werden diese auch im Ziel gelöscht !
Am Ende werden die Quelle und das Ziel verglichen, damit man sieht ob alles funktionierte.
Dazu habe ich ein kleines Script geschrieben, welches ich hier gerne teile:
Diesen Code in eine Textdatei kopieren und abspeichern.
Die Pfade anpassen und schon gehts los. Die Quelle wird dabei nie gelöscht, keine Angst.

Vorsicht bei Windows (NTFS/FAT) Festplatten.
– HandelsĂŒbliche USB Festplatten sind ab Werk im Windows Format (NTFS) formatiert.
– rsync muss gesgt werden, dass das Ziel NTFS ist ! Sonst funktioniert das Backup nicht korrekt.
– Das alte FAT Format (Windows XP) kann zudem nicht mit Daten >4GB umgehen.

Warum das ?
NTFS kann mit Gross / Kleinschreibung nicht umgehen und auch die Berechtigung der Files in Windows, sowie die Zeitangaben passen nicht zu Linux.
Darum bitte unbedingt auf die unterschiedlichen Paramer achten. Ansonsten droht Datenverlust im Backup!
Falls Sie das ganze /home am StĂŒck sichern wollen, wird es unter NTFS trotzdem zu einigen Meldungen kommen.
*
Parameter bei NTFS oder FAT (Windows) Festplatten

rsync -rtv -h -l -D --progress --delete-after --delete-excluded --modify-window=2  /path/to/ext4/ /path/to/ntfs/

Parameter bei EXT4 , EXT3 oder BTRFS (Linux) Festplatten

rsync -av --progress --delete  /path/to/ext4/ /path/to/ext4

Hier nun das fertige Backup Script:

#!/bin/bash

# rsync script: - www.linux-x.com, Ric.Eschmann - +41 79 288 21 22
# Version 1
# Erstellt am : 2021-04-15
# Letzte Änderung :

#--- A N L E I T U N G  -> Das mĂŒssen Sie lesen !!!!--
<< 'Comment'

(: Bin ich Linux oder Windows :) !!! MEGA W I C H T I G !!!
1. Windows USB Festplatten sind mit NTFS formatiert und speichern keine Besitzerrechte der Daten.
2. Linux USB Festplatten sind mit EXT4 oder BTRFS formatiert und speichern die Besitzerrechte der Daten.

Damit man auf EXT4 Festplatten von jedem Rechner schreiben kann, startet man ein Terminal und gibt
der Festplatte volle Zugriffsrechte fĂŒr alle Benutzer: ->  sudo chmod 777 /run/media/user/backup-ext4
In Manjaro wird eine USB Festplatte vom System automatisch wie folgt eingehÀngt: /run/media/user/backup...
In Debian,Ubuntu,Linux Mint ist es der folgende Pfad : /media/backup...

Probieren Sie nie EXT4 rsync -av Optionen fĂŒr Linux auf NTFS Festplatten fĂŒr Windows laufen zu lassen.
Datenverlust und korrupte Files im Ziel sind garantiert, da NTFS keine Rechte und andere Gross/Kleinschreibe
Regeln kennt. Auch die Zeitangaben werden in Linux(EXT4) und Windows(NTFS) unterschiedlich gehandhabt.
NTFS,FAT32,exFAT Festplatten können unter Linux und diesem Script verwendet werden und werden darum
mit der fĂŒr Windows nötigen Option -rtv angesprochen.
Bei NTFS/FAT wird der Trick "-time=--modify-window=2 -s" mitgegeben, wass die ZeitprĂŒfung um ±2 Sekunde "verbiegt".
Falls in den zu transferierenden Daten ZeichensÀtze wie | oder #  bestehen, hat Windows(NTFS) Probleme damit.
Denken Sie daran, dass beim alten FAT32 lediglich max. 4GB grosse Daten gespeichert werden können !
NTFS , exFAT und EXT4 oder EXT3 sind von der GrössenbeschrÀnkung nicht betroffen.

So, nun verstehen Sie, warum Sie bei den unteren Angaben bei "linux=JA" unbedigt den Wert "NEIN"
eingeben mĂŒssen falls Sie eine Windows FAT/NTFS/exFAT Platte nutzen !!!!!!

Daten AUSSCHLUSS (Exclude)
Sie können Ordner und Files vom Backup bewusst ausschliessen. Zbs. den Download Ordner , .cache oder .tmp Daten.
Dazu erstellen Sie eine Textdatei mit dem Namen "exclude.txt" in Ihrem /home Verzeichnis.
Zeilenweise können Sie nun .cache /tmp/* etc. einfĂŒgen.
(Unten im Script sehen Sie Beispiele oder nutzen Sie die fertige Datei auf www.linux-x.com)
Wenn keine Auschlussdatei angelegt wurde wird dieses Script ein leeres "exclude.txt" beim 1. lauf angelegen.

PROGRAMMSTART
Sie können diese Datei "backup-rsync_USB_Disk.sh" mit dem Dateimanager starten.
Dann gehen Sie in den Dateimanager und dann auf 'Eigenschaften/Zugriffsrechte.
Der Datei gben Sie mit der aktiviertendas Checkbox das HĂ€ckchen bei 'erlauben Sie als Programm auszufĂŒhren'.
Möchen Sie lieber im Terminal arbeiten: Dann geht das mit 'sh backup-rsync_USB_Disk.sh' Befehl.

Viel Spass.

Fragen -> www.linux-x.com

Comment


#============= H I E R   A N G A B E N   E I N G E B E N  ======================

linux=JA  #JA/NEIN <-- Wichtig !! Bitte anpassen! Ist das Ziel eine Linux (ext4/ext3) Festplatte ? JA / NEIN (GROSS geschrieben)
<< 'Comment'
oder nutzen Sie im Ziel >Windows< ?
Dann setzten Sie 'Linux=Nein' ein und somit wird das Ziel als Windows (FAT/NTFS/exFAT) Festplatte behandelt!!
           
# Den Pfad zum Quell- und Ziel Verzeichnis ohne abschliessenden SchrÀgstrich '/' angeben.
Comment
quelle=~/        # Welches Verzeichnis soll gesichert werden? (Im Beispiel ~/ wird /home als Quelle gelesen.)
ziel=/run/media/hello/backup_ext4/backup/Richi/hello    # Wo sollen die Sicherungen gespeichert werden?

#============ Ende Ihrer Linux oder Windows + Quelle, Ziel angaben  ================


# ------Ab hier muss man eigentlich nichts mehr Ă€ndern. Denken Sie an aber optional an die AussschlĂŒsse in ~/exclude.txt !

nosave=~/exclude.txt    # AusschlĂŒsse werden in "/home/exclude.txt" im Home Ordner von Ihnen zeilenweise eingetragen !
heute=$(date +%Y-%m-%d)     # Gibt dem Ziel Ordner das Tagesdatum mit . zbs. "2021-04-15_home"

#Start Textinfoparameter
function green_msg() {
echo -e "\\033[32;1m${@}\033[0m"
}

function blue_msg() {
echo -e "\\033[34;1m${@}\033[0m"
}

#Ende Start Textinfoparameter


#Start BegrĂŒssung und BestĂ€tigung ob Linux oder Windows Festplatte
if test $linux = "JA" #Hier NICHTS Ändern !!!
then
green_msg "\n\nDas Ziel ist eine < L  I  N  U  X >  (ext4/ext3/btrfs) Festplatte.\n\n"
else
green_msg "\n\nDas Ziel ist eine < W  I  N  D  O  W  S > (NTFS/FAT/exFAT) Festplatte.\n\n"
fi
green_msg "Haben Sie an die '/home/exclude.txt' Datei gedacht?"
green_msg "\n\nIn 30 Sekunden gehts los. Sie können jetzt mit mit CTRL-C noch abbrechen.\n\n"
sleep 20
blue_msg "\n\nSie haben noch 10 Sekunden Bedenkzeit :)\n\n"
sleep 10
green_msg "\n\n** Das Backup ist in Arbeit, Das kann dauern, bitte warten. . . \n\n"
#Ende BegrĂŒssung

# Ausschlussdatei wird in /home/exclude.txt neu anlgelegt, nur falls noch keine existiert:
touch $nosave
sleep 3

# Abfrage der Festplatte (Linux"EXT4" oder Windows"NTFS"),gemÀss Angaben die Sie mit "JA/NEIN" gesetzt haben.
if test $linux = "JA"
then
# LINUX Festplatten (EXT3/EXT4/BTRFS)
rsync -av --progress --delete --exclude-from="${nosave}" "${quelle}" "${ziel}_${heute}/" --link-dest="${ziel}_last/"
ln -nsf "${ziel}_${heute}" "${ziel}_last"
else
# Microsoft WINDOWS Festplatten (FAT32/NTFS/exFAT)
rsync -rtv -h -l -D --progress --delete-after --delete-excluded --exclude-from="${nosave}" --modify-window=2 "${quelle}" "${ziel}_${heute}/" --link-dest="${ziel}_last/"
ln -nsf "${ziel}_${heute}" "${ziel}_last"
fi


green_msg "\n\n*****Das Backup ist beendet. *****\n\n"

#---Daten Grösse Kontrolle ,Quelle vs. Ziel
green_msg "\n\n*****Kontrolle: Dateigroessen von Quelle und Ziel*****\n\n"
blue_msg "Wenn Sie Unterschiede feststellen, haben Sie vermutlich einige Daten ausgeschlossen.~/exclude.txt"
du -sh "${quelle}" "${ziel}_${heute}"


green_msg "In 2 Minuten wird dieses Fenster automatisch geschlossen."
blue_msg "Wenn Sie alles kontrolliert haben, können Sie nun auch mit CTRL-C das Script manuell stoppen."
sleep 120

# NOCH EINIGE INFORMATIONEN ZU RSYNC ---------------------------

#rsync Befehle mit Löschen im Ziel.
# Beispiele fĂŒr rsync EinzeleintrĂ€ge. Kann im Terminal aufgerufen werden.

#Bei EXT4 Formatierten Platten als Ziel ,mit Rechtevergabe und Zeit.
#rsync -av --progress --delete /path/to/ext4/ /path/to/ext4/

#Bei NTFS formatierten Platten als Ziel.
#rsync -rtv -h -l -D --progress --delete-after --modify-window=2 /path/to/ext4/ /path/to/ntfs/

# Zeitangabe im String:
# rsync -av --progress --delete /path/to/ext4/ /path/to/ext4$(date +\\%Y-\\%m-\\%d)

# rsync Optionen
#-a Das ist die Linux Archiv Vollmilchsau. Recursiv und behÀlt File Rechte, symbolische links, file Besitzer, etc.
#-r rekursiv, aber ohne Besitzerangaben des users and Gruppen, Rechte, Zeitstempel, symbolische links.
#-v Verbose,zeigt im Fenster Anagben ĂŒber die laufende Verarbeitung an.
#-p Progress, Zeigt detailierte Anagben der einzelnen Dateien an. Grösse, Fortschritt, Geschwindikeit
# FĂŒr Windows NTFS/FAT nutze ich die gleichen Optionen wie die Software "Lucky Backup". ..und es funktioniert..

# Nun Beispiele fĂŒr meist verwendete AusschlĂŒsse vom Backup. NĂŒtzlich, wenn Sie zbs. / oder /home sichern möchten.
# AusschlĂŒsse werden in "exclude.txt" im Home Ordner zeilenweise eingetragen.
<< 'Comment'
    
.gvfs
**/.gvfs/
.cache/*
.thumbnails*
.local/share/[Tt]rash*
*.backup*
*~
.dropbox*
/proc/*
/sys/*
/dev/*
/run/*
/etc/mtab
/var/cache/apt/archives/*.deb
lost+found/*
/tmp/*
/var/tmp/*
/var/backups/*
.Private
VirtualBox\ VMs/*
.VirtualBox
.dosbox
.java
.macromedia
.moonchild\ productions/*
.tvbrowser
.PlayOnLinux
.wine
.gvfs
.cache/*
.thumbnails*
.local/share/[Tt]rash*
*~
**~
.dropbox*
/proc/*
/sys/*
/dev/*
/run/*
/etc/mtab
/var/cache/apt/archives/*.deb
lost+found/*
/tmp/*
/var/tmp/*
/var/backups/*
.Private
VirtualBox\ VMs/*
.VirtualBox
.dosbox
.java
.macromedia
.moonchild\ productions/*
.tvbrowser
.PlayOnLinux
.wine
**~
/mnt/*/**
/media/*/**
/var/run/**
/run/**
/proc/**
/dev/**
/sys/**


Comment
exit