[] 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 » 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