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

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
AxelMD
Beiträge: 1350
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: 1350
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: 10686
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: 1350
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: 10686
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: 1350
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: 10686
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: 1350
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: 10686
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: 1350
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

schwedenmann
Beiträge: 5525
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

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

Beitrag von schwedenmann » 30.01.2022 21:41:45


JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

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

Beitrag von JTH » 30.01.2022 21:53:42

Oder einfach mal in der Doku von rsync selbst: man rsync.
Manchmal bekannt als Just (another) Terminal Hacker.

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

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

Beitrag von MSfree » 31.01.2022 09:39:27

AxelMD hat geschrieben: ↑ zum Beitrag ↑
30.01.2022 21:11:29
Hallo MSfree, kennst Du die Option?
Ja, ich kenne im Prinzip die Optionen, mit denen man den Fortschritt ausgeben kann. Allerdings sind solche Fortschrittsausgaben in meinem Anwendungsfall nicht sinnvoll. Ich lasse das Skript per cron laufen, also im Hintergrund ohne Terminalausgabe, da interessiert mich der Erfolg erst, wenn es fertig ist oder fehlerhaft abgebrochen ist.

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

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

Beitrag von AxelMD » 31.01.2022 11:29:03

Danke euch.

@MSfree

https://pastebin.com/PvibG52j

Line 79

Code: Alles auswählen

 rsync -av $HARDLINK $SRC $BUS >> $LOG  2>&1
abgeändert in

Line 79

Code: Alles auswählen

 rsync -av --info=progress2 $HARDLINK $SRC $BUS >> $LOG  2>&1
sind da irgendwelche Problem zu erwarten, bzw. weitere Anpassungen vor zu nehmen?

MfG
AxelMD

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

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

Beitrag von bluestar » 31.01.2022 11:43:12

AxelMD hat geschrieben: ↑ zum Beitrag ↑
31.01.2022 11:29:03
Line 79

Code: Alles auswählen

 rsync -av --info=progress2 $HARDLINK $SRC $BUS >> $LOG  2>&1
sind da irgendwelche Problem zu erwarten, bzw. weitere Anpassungen vor zu nehmen?
Soweit ich das sehe wir dein Progress dennoch in die Datei $LOG geschrieben und erscheint somit nicht auf dem Bildschirm.

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

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

Beitrag von MSfree » 31.01.2022 11:53:26

AxelMD hat geschrieben: ↑ zum Beitrag ↑
31.01.2022 11:29:03
Line 79

Code: Alles auswählen

 rsync -av --info=progress2 $HARDLINK $SRC $BUS >> $LOG  2>&1
sind da irgendwelche Problem zu erwarten,
Der Fortschritt wird normalerweise per stdout auf das Terminal geschrieben. Mit dem ">>" wird diese Ausgabe an die Datei $LOG angehängt.

Das bringt zwar keine Probleme, die Logdatei wird dadurch aber mit Fortschrittsausgaben geflutet. Auf dem Terminal selbst siehst du also nichts. Fortschritt in eine Datei umzuleiten, ist also sinnlos. Das Log selbst ist hinterher mit unnötigen Fortschrittsausgaben zugemüllt, der eigentliche Inhalt unübersichtlich irgendwo dazwischen.

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

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

Beitrag von AxelMD » 31.01.2022 12:22:46

Das gefällt mir nicht, gut das ich gefragt habe, danke.

Was wäre eine gute Lösung, wenn ich den aktuellen Status gerne sehen möchte?

Ober evtl. doch darauf verzichten, weil es verkompliziert?

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

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

Beitrag von MSfree » 31.01.2022 13:32:45

AxelMD hat geschrieben: ↑ zum Beitrag ↑
31.01.2022 12:22:46
Was wäre eine gute Lösung, wenn ich den aktuellen Status gerne sehen möchte?
Ich glaube, du kannst nur entweder eine Fortschrittsanzeige ausgeben lassen oder ein Log mit Dateinamen, die kopiert wurden.

Für die Ausgabe eines Logs ist das Skript gemacht worden.
Wenn du eine Fortschrittsanzeige willst, mußt du die Ausgabe ins Log aus dem Skript ausbauen.

Ich kann es nachvollziehen, wenn du zwischendurch wissen willst, wie lange es noch dauern könnte. Für mich spielt das halt keine Rolle, da rödelt ein eigenständiger Rechner vollautomatisch vor sich hin. Mittlerweile weiß ich auch, daß mein täglicher Lauf 10-20 Minuten dauert, das sehe ich, wenn ich in das Log schaue und die protokolierte Startzeit und Endzeit ansehe.

Sammel doch erstmal mit ein paar Backups Erfahrungen. Dann weißt du auch, wie lange das dauern wird und brauchst nicht ungeduldig auf das Terminal zu starren und auf das Ende des Skripts zu warten.

Du kannst auch in einem zweiten Terminal das bisher erstellte Log mit

Code: Alles auswählen

tail -f <Logdateiname>
mitverfolgen. Normalerweise arbeitet rsync die Unterverzeichnisse alphabetisch sortiert ab, so daß man auch so den ungefähren Fortschritt sieht. Vor allem sieht man aber, daß sich überhaupt noch was tut.

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

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

Beitrag von AxelMD » 17.06.2023 10:57:05

https://www.oehl.tv/udev-systemd/
http://jasonwryan.com/blog/2014/01/20/udev/

Hallo Forum,

wie muss ich herangehen, wenn ich das Script von MSfree mit einsteken einer USB Hdd ausführen möchte?

Es sollen drei unerschiedliche HDDs in drei Gehäusen genutzt werden.

Wie stelle ich die udev Regeln auf?

MfG
AxelMD

Antworten