[] rsync Backup von /home/user - Script von MSfree

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 16.01.2022 14:18:22

bitten Löschen, ein Versehen, danke
Zuletzt geändert von AxelMD am 16.01.2022 14:24:50, insgesamt 1-mal geändert.

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 16.01.2022 14:20:09

Oh super, danke

Mein heimlicher Favorit ist schon die Lösung

"rsync Backup von /home/user - Script von MSfree".

Flexibel, schnell und mit Basisprogramm, nur etwas schlau sollte man sein.

rsync, die Funktionalitäten sind fast unendlich und in jedem Linuxsystem enthalten.

Das soll sich AxelMD auch merken:

MSfree
Mein Backupsystem holt sich die Daten vom Fileserver. Das hat den wesentlichen Vorteil, daß der Backuprechner keine Netzwerkfreigaben nach aussen anbieten muß und Schadsoftware es wesentlich schwerer hat, von aussen den Backuprechner zu infizieren.

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 16.01.2022 14:44:55

Fehlermeldung

Code: Alles auswählen

sh ./rsync-msfree-3.sh
ls: Zugriff auf '/media/axel/usbhdd1/backup/daily-*' nicht möglich: Datei oder Verzeichnis nicht gefunden
rsync-msfree-3.sh

Code: Alles auswählen

#/bin/bash
#=====================================================
# anpassen:
#=====================================================
#  SRC = Hostname und Freigabename der Quelle
SRC=/home/axel
 
#  DSTDIR = Vereichnis, unter dem die Backups auf dem Ziel angelegt werden
DSTDIR=/media/axel/usbhdd1/backup
 
#  HTMLLOGDIR = Vereichnis, unter dem die Logs auf dem Ziel angelegt werden
HTMLLOGDIR=/media/axel/usbhdd1/Logs

#  PREFIX: "Vorsilbe", die den täglichen Unterverzeichnisnamen vorgehängt wird
PREFIX=daily
 
#=====================================================
# automatische Variablen, keine Anpssung nötig
#=====================================================
# aktuelles Datum
DATE=`date +%d.%m.%y`
# Zielverzeichnis
DST=$DSTDIR/$PREFIX-$DATE
# temporäres Verzeichnis
BUS=$DSTDIR/.running-$DATE
# Logdateiname
LOG=$DSTDIR/log/log-$DATE.log
# HTML-Logdatei
HTMLLOG=$HTMLLOGDIR/log-$DATE.html
# gestriges Verzeichnis
PREV=`ls -rtd $DSTDIR/$PREFIX-* | tail -1`
 
#=====================================================
# anlegen der Ausgabeverzeichnisse
#=====================================================
if test ! -d $DSTDIR
then
mkdir $DSTDIR
fi
 
if test ! -d $DSTDIR/log
then
mkdir $DSTDIR/log
fi
 
#=====================================================
# Kopf der Logdate erzeugen
#=====================================================
CURRENTTIME=`date -u`
echo "================================================" > $LOG
echo "Started at " $CURRENTTIME >> $LOG
echo "================================================" >> $LOG
echo "Fetching from " $SRC >> $LOG
echo "Storing at " $DST >> $LOG
echo "Hardlinking from " $PREV >> $LOG
echo "================================================" >> $LOG
 
#=====================================================
# rsync aufrufen und bei Fehler neu starten
# die Sicherung wird hier erstmal in ein temporäres
# Verzeichnis geschrieben
#=====================================================
while ! \
rsync -av --link-dest=$PREV $SRC $BUS >> $LOG 2>&1
do
sleep 60
done
 
#=====================================================
# Sicherungsverzechnis in endgültigen Namen umbenennen
# und mit touch auf die aktuelle Uhrzeit setzen
#=====================================================
mv $BUS $DST
touch $DST
 
#=====================================================
# Ende der Logdate erzeugen
#=====================================================
CURRENTTIME=`date -u`
echo "================================================" >> $LOG
echo "Finished at " $CURRENTTIME >> $LOG
echo "================================================" >> $LOG
 
#=====================================================
# Logdate HTML umsetzen, damit man sie leichter in
# einem Browser lesen kann.
#=====================================================
awk '
BEGIN {
print "<!DOCTYPE html>"
print "<html>"
print " <head>"
print " <meta charset="UTF-8">"
print " <title>TimAchine Backup Log</title>"
print " </head>"
print " <body>"
}
{
print " "$0"<br>"
}
END{
print " </body>"
print "</html>"
}' $LOG > $HTMLLOG
 
#=====================================================
# originale Logdate komprimieren, um Platz zu sparen
#=====================================================
gzip -9 $LOG
 
Vor der Scriptausführung hatte ich alles auf usbhdd1 gelöscht.
Die Ordner "backup" und "Logs" habe ich danach manuell auf usbhdd1 angelegt.

Wie bekomme ich debianforum.de pastebin die Dateien sauber auf meinen PC?
Bis jetzt mache ich das mit copy und paste.


Schade, was läuft da falsch?

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 16.01.2022 15:12:20

Das Script funktioniert einwandfrei:

rsync-mini.sh

Code: Alles auswählen

#!/bin/sh

quelle=/home/axel/
ziel=/media/axel/usbhdd1/
heute=$(date +%Y-%m-%d)

rsync -avR --delete "${quelle}"  "${ziel}${heute}/" --link-dest="${ziel}last/"
ln -nsf "${ziel}${heute}" "${ziel}last"

exit 0 
 

Benutzeravatar
MSfree
Beiträge: 10727
Registriert: 25.09.2007 19:59:30

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von MSfree » 16.01.2022 17:25:43

AxelMD hat geschrieben: ↑ zum Beitrag ↑
16.01.2022 15:12:20
Das Script funktioniert einwandfrei:
Es funktioniert, aber nicht so, wie du erwartest. Denn das --link-dest erfordert ein bestehendes, vorheriges Backupverzeichnis. Da bei deinem Skript das Verzeichnis ${ziel}last/ nie existiert, passiert hier einfach keine Verlinkung sondern nur eine Komplettsicherung.

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 16.01.2022 17:42:06

AxelMD hat geschrieben: ↑ zum Beitrag ↑
16.01.2022 14:44:55
Fehlermeldung

Code: Alles auswählen

sh ./rsync-msfree-3.sh
ls: Zugriff auf '/media/axel/usbhdd1/backup/daily-*' nicht möglich: Datei oder Verzeichnis nicht gefunden
Wie löse ich das Problem bei deinem Script?
Irgendwie scheine ich bei deinem Script zu "anfängerich".
passiert hier einfach keine Verlinkung sondern nur eine Komplettsicherung.
Das ist natürlich nicht so schön, bei dir gefällt mir das besser, schneller und platzsparender.

Dein Script scheint aber auch ausgefeilter zu sein, hier kennt sich wohl niemand damit so richtig aus.
Es sieht sooooooo einfach aus.

Benutzeravatar
MSfree
Beiträge: 10727
Registriert: 25.09.2007 19:59:30

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von MSfree » 16.01.2022 17:54:41

AxelMD hat geschrieben: ↑ zum Beitrag ↑
16.01.2022 17:42:06

Code: Alles auswählen

sh ./rsync-msfree-3.sh
ls: Zugriff auf '/media/axel/usbhdd1/backup/daily-*' nicht möglich: Datei oder Verzeichnis nicht gefunden
Wie löse ich das Problem bei deinem Script?
Ich dachte, das hätte ich mit dem lezten Upload behoben, aber irgendwie hat sich da doch noch ein Copy'n'Paste-Fehler eingeschlichen.

Zur Erklärung:
Der ls-Aufruf auf Zeile 31 bringt eine Fehlermeldung, wenn noch kein altes Backup existiert. Die Meldung ist allerdings bedeutungslos, weil die Variable PREV dann trotzdem leer ist. Auf Zeile 54 wird geprüft of PREV leer ist und entscheidet damit ob das Backup mit oder ohne --link-dest gemacht werden soll.

In der Variante NoPaste-Eintrag41573 wird die Fehlermeldung unterdrückt. Beide Versionen laufen aber bis auf die Mledung korrekt durch. Sobald mal ein Backup vom Vortag vorhanden ist, ist auch PREV nicht mehr leer und ls gibt keine Meldung mehr aus.

P.S. ja, den Text von NoPaste kann man wohl nicht runterladen, das muß man per Copy'n'Paste machen.

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 16.01.2022 18:03:49

Darf ich das Script bei https://pastebin.com/ hochladen?
aber irgendwie hat sich da doch noch ein Copy'n'Paste-Fehler eingeschlichen.
Bei dir oder bei mir?

Hat noch keiner dich nach deinem Script befragt?

Bei jetzt 814 Aufrufen dieses Thread's scheint Interesse vorhanden zu sein.
Das Script ist auch voll cool, eine Perle sozusagen.
Feinschliff und Dokumentation ist noch erforderlich.

Benutzeravatar
MSfree
Beiträge: 10727
Registriert: 25.09.2007 19:59:30

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von MSfree » 16.01.2022 19:32:26

AxelMD hat geschrieben: ↑ zum Beitrag ↑
16.01.2022 18:03:49
Darf ich das Script bei https://pastebin.com/ hochladen?
Ich habe jedenfalls keine Bedenken. Das Skript ist ja ohnehin schon öffentlich.
Bei dir oder bei mir?
Das war mein Fehler.
Hat noch keiner dich nach deinem Script befragt?
Bis jetzt jedenfalls nicht.
Bei jetzt 814 Aufrufen dieses Thread's scheint Interesse vorhanden zu sein.
Solche Zahlen sagen nicht viel aus. Inzwischen sind es ja sogar 839, bei 37 Beiträgen. Einfach gerechnet heißt das, daß hier 839/37 also 21-22 Leute mitlesen, wovon mindestens 15 Stammnutzer dieses Forums sind.

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 17.01.2022 08:53:15

msfree-rsync-4.sh 41573
https://pastebin.com/LpdNRssj

Fehlermeldung:

Code: Alles auswählen

sh ./rsync-4.sh
: not foundh: 7: 
: not foundh: 10: 
: not foundh: 13: 
: not foundh: 16: 
: not foundh: 32: 
./rsync-4.sh: 125: Syntax error: end of file unexpected (expecting "do")
Was ist da falsch?
Warum werden jetzt keine Leerzeilen akzeptiert?
Liegt das an pastebin?
Den Download habe mit "download" bei pastebin getätigt und "txt" beim Speichern gegen "sh" ausgetauscht.

Warum haben die Scripte von MSfree keinen "sync" Befehl enthalten damit im Schreibpuffer des Linux-Kernels befindliche Daten auf den Datenträger geschrieben werden?

Mein Editor für die *.sh ist Kate.

Für AxelMD zum merken:
Mit F11 werden bei Kate die Zeilenummern angezeigt.

Jetzt habe ich copy - paste erneut rsync-4.sh angelegt, das Script funktioniert jetzt.

Das für mich angepaßte Script (von https://pastebin.com/LpdNRssj) sieht wie folgt aus:

Code: Alles auswählen

#/bin/bash
#=====================================================
# customize SRC, DSTDIR, HTMLLOGDIR, PREFIX:
#
#  SRC = Hostname und Freigabename der Quelle
SRC=/home/axel
 
#  DSTDIR = Vereichnis, unter dem die Backups auf dem Ziel angelegt werden
DSTDIR=/media/axel/usbhdd1/backup
 
#  HTMLLOGDIR = Vereichnis, unter dem die Logs auf dem Ziel angelegt werden
HTMLLOGDIR=/media/axel/usbhdd1/Logs
 
#  PREFIX: "Vorsilbe", die den täglichen Unterverzeichnisnamen vorgehängt wird
PREFIX=daily

#=====================================================
# automatische Variablen, keine Anpssung nötig
#=====================================================
# aktuelles Datum
DATE=`date +%d.%m.%y`
# Zielverzeichnis
DST=$DSTDIR/$PREFIX-$DATE
# temporäres Verzeichnis
BUS=$DSTDIR/.running-$DATE
# Logdateiname
LOG=$DSTDIR/log/log-$DATE.log
# HTML-Logdatei
HTMLLOG=$HTMLLOGDIR/log-$DATE.html
# gestriges Verzeichnis
PREV=`ls -rtd $DSTDIR/$PREFIX-* 2> /dev/null | tail -1`

#=====================================================
# anlegen der Ausgabeverzeichnisse
#=====================================================
if test ! -d $DSTDIR
then
  mkdir $DSTDIR
fi

if test ! -d $DSTDIR/log
then
  mkdir $DSTDIR/log
fi

if test ! -d $HTMLLOGDIR
then
  mkdir $HTMLLOGDIR
fi

#=====================================================
# prüfen, ob rsync mit --link-dest laufen soll
#=====================================================
if test -z "$PREV"
then
  HARDLINK=""
else
  HARDLINK=--link-dest=$PREV
fi

#=====================================================
# Kopf der Logdate erzeugen
#=====================================================
CURRENTTIME=`date -u`
echo "================================================"  > $LOG
echo "Started at       " $CURRENTTIME                   >> $LOG
echo "================================================" >> $LOG
echo "Fetching from    " $SRC                           >> $LOG
echo "Storing at       " $DST                           >> $LOG
echo "Hardlinking from " $PREV                          >> $LOG
echo "================================================" >> $LOG

#=====================================================
# rsync aufrufen und bei Fehler neu starten
# die Sicherung wird hier erstmal in ein temporäres
# Verzeichnis geschrieben
#=====================================================
while ! \
  rsync -av $HARDLINK $SRC $BUS >> $LOG  2>&1
do
  sleep 60
done

#=====================================================
# Sicherungsverzechnis in endgültigen Namen umbenennen
# und mit touch auf die aktuelle Uhrzeit setzen
#=====================================================
mv $BUS $DST
touch $DST

#=====================================================
# Ende der Logdate erzeugen
#=====================================================
CURRENTTIME=`date -u`
echo "================================================" >> $LOG
echo "Finished at      " $CURRENTTIME                   >> $LOG
echo "================================================" >> $LOG

#=====================================================
# Logdate HTML umsetzen, damit man sie leichter in
# einem Browser lesen kann.
#=====================================================
awk '
BEGIN {
  print "<!DOCTYPE html>"
  print "<html>"
  print "  <head>"
  print "  <meta charset="UTF-8">"
  print "  <title>TimAchine Backup Log</title>"
  print "  </head>"
  print "  <body>"
}
{
  print "    "$0"<br>"
}
END{
  print "  </body>"
  print "</html>"
}' $LOG > $HTMLLOG

#=====================================================
# originale Logdate komprimieren, um Platz zu sparen
#=====================================================
gzip -9 $LOG 
Wie ist ein empfehlenswertes Vorgehen für die Zukunft?
Gibt es eine Pastedienst wo ich die Datei downloaden und gleich mit arbeiten kann?

Warum haben wir, habe ich 2 mal log?
/media/axel/usbhdd1/backup/log/
und
/media/zxz/usbhdd1/Logs/

Welche Überlegung steckt dahinter?

Benutzeravatar
MSfree
Beiträge: 10727
Registriert: 25.09.2007 19:59:30

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von MSfree » 17.01.2022 10:35:06

AxelMD hat geschrieben: ↑ zum Beitrag ↑
17.01.2022 08:53:15
Warum haben die Scripte von MSfree keinen "sync" Befehl enthalten damit im Schreibpuffer des Linux-Kernels befindliche Daten auf den Datenträger geschrieben werden?
Weil sync praktisch immer überflüssig ist. Ich sehe zwar hier im Forum, öfter mal, daß auf manche Befehle sync empfohlen wird, z.B. beim Schreiben eines netinstaller Images mit dd, aber auch hier ist sync überflüssig, weil dd selbst bereits intern sync aufruft.

Ansonsten wird auf jeden Fall sync ausgeführt, wenn man einen Datenträger unmountet. Wer also den Datenträger nicht blind abzieht sondern die Mechanismen zum (sicheren) Auswerfen im Dateimanager bzw. umount von der Kommanzeile nutzt, bekommt auf jeden Fall einen sauber gesyncten Datenträger.
Was ist da falsch?
Warum werden jetzt keine Leerzeilen akzeptiert?
Liegt das an pastebin?
Ich weiß es nicht. Du kannst aber auch von NoPoaste Dateien runterladen. Ich habe den Knopf zwar auch verzweifelt gesucht, aber der Thread hier hat Klarheit geschaffen:
viewtopic.php?t=183289

Benutzeravatar
MSfree
Beiträge: 10727
Registriert: 25.09.2007 19:59:30

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von MSfree » 17.01.2022 10:42:30

AxelMD hat geschrieben: ↑ zum Beitrag ↑
17.01.2022 08:53:15
Warum haben wir, habe ich 2 mal log?
/media/axel/usbhdd1/backup/log/
und
/media/zxz/usbhdd1/Logs/

Welche Überlegung steckt dahinter?
Das eine Log ist nur die Ausgabe, die rsync produziert. Diese wird am Ende noch mit gzip komprimiert, um Platz zu sparen. Man kann diese Dateien dann allerdings nur mit einigen Editoren direkt lesen oder mit Kommandozeilenprogrammen wie zcat.

Das zweite Log ist im HTML-Format, das man direkt mit einem Webbrowser (Firefox) anzeigen kann. Das hatte ich damals eingebaut, als ich das Skript noch auf meiner damaligen Synology laufen ließ. Mit dem dort Eingebaute Webserver konnte ich die Logs bequem aufrufen und anschauen. Die Synology ist zwar inzwischen Geschichte, aber die HTML-formatierten Logs habe ich beibehalten. Wenn es dich stört, kannst du den Teil am Ende des Skripts auch auskommentieren oder löschen.

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 17.01.2022 11:02:01

Das Script belasse ich so, das mit HTML ist ganz interessant.
Erst mal muss ich die Basics verstehen, dann kann ich anpassen.
Ansonsten verrenne ich mich.
Der Einstieg mit dem Script ist sowieso über meinem Kenntnisstand.
Ohne dich hätte ich das nicht hinbekommen, danke.

Code: Alles auswählen

# aktuelles Datum
DATE=`date +%d.%m.%y,%H,%M`
Wenn ich das letzte Script auf Minuten ausführbar mit "%M" stelle, werden nicht
die letzten Daten von heute z. B. 11 h aufgenommen.
Es wird nur das erste Backup vom Tag berücksichtigt, ich erzeuge nur Duplikate.

Woran liegt das?
In welcher Zeile ist das hinterlegt?


Hast Du dazu auch Input? ----> viewtopic.php?t=183277

Benutzeravatar
MSfree
Beiträge: 10727
Registriert: 25.09.2007 19:59:30

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von MSfree » 17.01.2022 13:35:05

AxelMD hat geschrieben: ↑ zum Beitrag ↑
17.01.2022 11:02:01
Wenn ich das letzte Script auf Minuten ausführbar mit "%M" stelle, werden nicht
die letzten Daten von heute z. B. 11 h aufgenommen.
Es wird nur das erste Backup vom Tag berücksichtigt, ich erzeuge nur Duplikate.
Ich verstehe nicht, was du meinst. Schau mal in das erzeugte Log, da steht drin, welche Dateien übertragen wurden.
Hast Du dazu auch Input? ----> viewtopic.php?t=183277
Nur soviel:
Man sollte bei der "Anleitung", die du unter Bitblokes gefunden hast, auch mal auf das Datum schauen. Leider fehlt solchen Blogs oft das Veröffentlichungsdatum, aber die Kommentare weiter unten sind 10 Jahre alt. Mittlerweile wurde Debian auf systemd umgestellt, und da funktioniert die 10 Jahre alte Methode möglicherweise nicht mehr so, wie beschrieben.

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von uname » 17.01.2022 13:38:44

Etwas offtopic:

Ich habe jetzt nicht alles gelesen. Aber vor Jahren habe ich auch mal ein Script geschrieben.
Du musst es bestimmt nicht verwenden. Aber vielleicht enthält es ja noch ein paar interessante Ansätze:
https://wiki.ubuntuusers.de/Skripte/Backup_mit_RSYNC

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 17.01.2022 13:46:54

Hier bitte nur "rsync Backup von /home/user - Script von MSfree"

Automatische Datensicherung: Backup-Script mit rsync bei Einstecken einer externen Festplatte
bitte da ------------>
viewtopic.php?t=183277#p1292918

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 18.01.2022 14:02:43

MSfree hat geschrieben: ↑ zum Beitrag ↑
17.01.2022 10:35:06
AxelMD hat geschrieben: ↑ zum Beitrag ↑
17.01.2022 08:53:15
Warum haben die Scripte von MSfree keinen "sync" Befehl enthalten damit im Schreibpuffer des Linux-Kernels befindliche Daten auf den Datenträger geschrieben werden?
Weil sync praktisch immer überflüssig ist. Ich sehe zwar hier im Forum, öfter mal, daß auf manche Befehle sync empfohlen wird, z.B. beim Schreiben eines netinstaller Images mit dd, aber auch hier ist sync überflüssig, weil dd selbst bereits intern sync aufruft.

Ansonsten wird auf jeden Fall sync ausgeführt, wenn man einen Datenträger unmountet. Wer also den Datenträger nicht blind abzieht sondern die Mechanismen zum (sicheren) Auswerfen im Dateimanager bzw. umount von der Kommanzeile nutzt, bekommt auf jeden Fall einen sauber gesyncten Datenträger.
Ich nutze Dolphin zum unmounten, also keine Kommandozeile.
Kann ich ein "sync" am Ende des Scripts anfügen?
Bei langsamen USB Stick*s scheint es erforderlich zu sein.


Wie kann ich das Script rsync-msfree-4.sh im Ordner /home/axel/rsnyc direkt aufrufen?

https://qastack.com.de/ubuntu/427818/ho ... -full-path

Geht das nicht einfacher?

Benutzeravatar
MSfree
Beiträge: 10727
Registriert: 25.09.2007 19:59:30

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von MSfree » 18.01.2022 14:38:34

AxelMD hat geschrieben: ↑ zum Beitrag ↑
18.01.2022 14:02:43
Kann ich ein "sync" am Ende des Scripts anfügen?
Kann man machen, schadet nicht, ist aber überflüssig.
Bei langsamen USB Stick*s scheint es erforderlich zu sein.
Nein, es ist selbst dann unnötig. Wenn man umount ausführt, dauert es halt dann länger, bis alle Puffer und Caches rausgeschrieben sind. Aber wenn umount fertig ist, ist das Medium garantiert gesynct.

Auch Dolphin sollte erst dann zur Bereitschaft zurückkehren, wenn dort "Auswerfen", also der umount-Prozeß, vollständig durchgelaufen ist. Vorher darf man der Stick/die Platte halt nicht abziehen.

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 18.01.2022 14:40:36

Auch Dolphin sollte erst dann zur Bereitschaft zurückkehren, wenn dort "Auswerfen", also der umount-Prozeß, vollständig durchgelaufen ist. Vorher darf man der Stick/die Platte halt nicht abziehen.
Nach oben
Die Fertigmeldung "USB Medium kann entfernt" bekomme ich von Dolphin manchmal zu früh.
Besonders oft wenn große Dateien kopiert werden.

Normalerweise ist im Terminal bei Eingabe von "sync" der Cursor sofort wieder verfügbar.
Unmounte ich mit Dolphin, bekomme die Nachricht USB kann weg, mache schnell ein "sync", arbeitet "sync"
oft noch. Das ist besonders auffällig bei langsamen USB-Flasch-Speicher der Fall.

Benutzeravatar
MSfree
Beiträge: 10727
Registriert: 25.09.2007 19:59:30

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von MSfree » 18.01.2022 14:50:22

AxelMD hat geschrieben: ↑ zum Beitrag ↑
18.01.2022 14:40:36
Die Fertigmeldung "USB Medium kann entfernt" bekomme ich von Dolphin manchmal zu früh.
Was aber ein Bug im Dolphin wäre -> Bugreport.

Wie gesagt, es schadet nicht, wenn man ans Ende dass Backupskripts noch sync anhängt, dann ist man auf der sicheren Seite.

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 18.01.2022 15:05:09

kann ich das an rsnyc-msfree-4.sh Script unten anhängen?

https://pastebin.com/LpdNRssj

Zeile 125

Code: Alles auswählen

rsync

Benutzeravatar
MSfree
Beiträge: 10727
Registriert: 25.09.2007 19:59:30

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von MSfree » 18.01.2022 15:11:06

AxelMD hat geschrieben: ↑ zum Beitrag ↑
18.01.2022 15:05:09
kann ich das an rsnyc-msfree-4.sh Script unten anhängen?
Ich erhebe kein Urheberrecht auf das Skript. Ob du da nu noch was dranhängst, bedarf keiner Genehmigung meinerseits. :mrgreen:

Ich hatte ja weiter oben schon geschrieben, daß es kein Fehler ist, das ans Dateiende zu hängen.

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [gelöst] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 18.01.2022 19:37:56

https://pastebin.com/PvibG52j

Line 125
sync ## hinzugefügt

rsync-msfree-5.sh

Code: Alles auswählen

#/bin/bash
#=====================================================
# customize SRC, DSTDIR, HTMLLOGDIR, PREFIX:
#
#  SRC = Hostname und Freigabename der Quelle
SRC=quellrechner::pub
 
#  DSTDIR = Vereichnis, unter dem die Backups auf dem Ziel angelegt werden
DSTDIR=/volume1/backup
 
#  HTMLLOGDIR = Vereichnis, unter dem die Logs auf dem Ziel angelegt werden
HTMLLOGDIR=/volume1/RSyncLog
 
#  PREFIX: "Vorsilbe", die den täglichen Unterverzeichnisnamen vorgehängt wird
PREFIX=daily

#=====================================================
# automatische Variablen, keine Anpssung nötig
#=====================================================
# aktuelles Datum
DATE=`date +%d.%m.%y`
# Zielverzeichnis
DST=$DSTDIR/$PREFIX-$DATE
# temporäres Verzeichnis
BUS=$DSTDIR/.running-$DATE
# Logdateiname
LOG=$DSTDIR/log/log-$DATE.log
# HTML-Logdatei
HTMLLOG=$HTMLLOGDIR/log-$DATE.html
# gestriges Verzeichnis
PREV=`ls -rtd $DSTDIR/$PREFIX-* 2> /dev/null | tail -1`

#=====================================================
# anlegen der Ausgabeverzeichnisse
#=====================================================
if test ! -d $DSTDIR
then
  mkdir $DSTDIR
fi

if test ! -d $DSTDIR/log
then
  mkdir $DSTDIR/log
fi

if test ! -d $HTMLLOGDIR
then
  mkdir $HTMLLOGDIR
fi

#=====================================================
# prüfen, ob rsync mit --link-dest laufen soll
#=====================================================
if test -z "$PREV"
then
  HARDLINK=""
else
  HARDLINK=--link-dest=$PREV
fi

#=====================================================
# Kopf der Logdate erzeugen
#=====================================================
CURRENTTIME=`date -u`
echo "================================================"  > $LOG
echo "Started at       " $CURRENTTIME                   >> $LOG
echo "================================================" >> $LOG
echo "Fetching from    " $SRC                           >> $LOG
echo "Storing at       " $DST                           >> $LOG
echo "Hardlinking from " $PREV                          >> $LOG
echo "================================================" >> $LOG

#=====================================================
# rsync aufrufen und bei Fehler neu starten
# die Sicherung wird hier erstmal in ein temporäres
# Verzeichnis geschrieben
#=====================================================
while ! \
  rsync -av $HARDLINK $SRC $BUS >> $LOG  2>&1
do
  sleep 60
done

#=====================================================
# Sicherungsverzechnis in endgültigen Namen umbenennen
# und mit touch auf die aktuelle Uhrzeit setzen
#=====================================================
mv $BUS $DST
touch $DST

#=====================================================
# Ende der Logdate erzeugen
#=====================================================
CURRENTTIME=`date -u`
echo "================================================" >> $LOG
echo "Finished at      " $CURRENTTIME                   >> $LOG
echo "================================================" >> $LOG

#=====================================================
# Logdate HTML umsetzen, damit man sie leichter in
# einem Browser lesen kann.
#=====================================================
awk '
BEGIN {
  print "<!DOCTYPE html>"
  print "<html>"
  print "  <head>"
  print "  <meta charset="UTF-8">"
  print "  <title>TimAchine Backup Log</title>"
  print "  </head>"
  print "  <body>"
}
{
  print "    "$0"<br>"
}
END{
  print "  </body>"
  print "</html>"
}' $LOG > $HTMLLOG

#=====================================================
# originale Logdate komprimieren, um Platz zu sparen
#=====================================================
gzip -9 $LOG
sync
Welche Rechte sollte man hdd1 zuweisen?


Bei meinem rdiff-backup System hat nur root Schreibrechte und axel nur Leserechte.
axel kann nichts kaputt machen, Verschlüsselungstrojaner vermutlich auch nicht.
Sollte man das beim rsync-msfree-5.sh auch so einstellen?
Zur Zeit darf axel alles auf hdd1.

Benutzeravatar
MSfree
Beiträge: 10727
Registriert: 25.09.2007 19:59:30

Re: [gelöst] rsync Backup von /home/user - Script von MSfree

Beitrag von MSfree » 18.01.2022 20:31:57

AxelMD hat geschrieben: ↑ zum Beitrag ↑
18.01.2022 19:37:56
Zur Zeit darf axel alles auf hdd1.
Wenn das Skript unter dem Benutzer "axel" ausgeführt wird, ist das auch sinnvoll und nötig. Anderenfalls könnte es sein, daß du einige Dateien gar nciht schreiben darfst.

AxelMD
Beiträge: 1378
Registriert: 15.03.2009 08:02:11

Re: [] rsync Backup von /home/user - Script von MSfree

Beitrag von AxelMD » 30.01.2022 21:11:29

https://www.pragmaticlinux.com/2021/05/ ... -in-linux/

rsync Option:

Code: Alles auswählen

--info=progress2
Hallo MSfree, kennst Du die Option?

MfG
AxelMD

Antworten