Backup Script für anschliessend BluRay brennen

F

fgordon

Gast
Da ich nun wohl doch kein LTO hole und auf BluRay backuppe habe ich mir ein kleines Script gebaut dass das etwas automatisiert.

Ich backuppe aktuell alles aus einem Verzeichnis (das syncthing bei mir) - gepackt wird mit zip (update nicht mehr RAR xD) in 1 Gbyte Files und dann der restliche Platz - soweit sinnvoll - für PAR2 genutzt.

Vielleicht kann das ja auch wer brauchen .... oder sieht ein Problem im Script... (Upgedated):D

Code:
#!/usr/local/bin/bash

myBluRaySizeG=23           # Nutzbare Groesse in GByte
myCopyProgsDirOnBluRay="/tank/notcrypted/copyprogs_2_backupcds/"

#------------------------------------------------------------------------------

if (( $# < 1 )); then
   echo ""
   echo ""
   echo "Fehler Verzeichnis angeben, das in eine ISO umgewandelt werden soll"
   echo ""
   echo ""
   exit 2
fi


myTargetDir="$1"

if [ ! -d "$myTargetDir" ]; then
    echo ""
    echo ""
    echo "$myTargetDir existiert nicht => Ende."
    echo ""
    echo ""
    exit 1
fi

if ! [[ "$myTargetDir" == */ ]]; then
   myTargetDir=$(echo "$myTargetDir/")
fi

if ! [[ "$myCopyProgsDirOnBluRay" == */ ]]; then
   myCopyProgsDirOnBluRay=$(echo "$myCopyProgsDirOnBluRay/")
fi



#-----------------------------------------------------------------------------------------------------
# Krams der auf jede BackupCD soll (z.B.MultiPar 7-Zip)
#-----------------------------------------------------------------------------------------------------

if ! [ -z "$myCopyProgsDirOnBluRay" ]; then
   if [ -d "$myCopyProgsDirOnBluRay" ]; then
      mkdir "${myTargetDir}"AddOnZ
      cp -R "$myCopyProgsDirOnBluRay" "${myTargetDir}"AddOnZ
   fi
fi



#-------------------------------------------------------------------------------------------------------------
# Wichtig fuer Restore ab Jahr 3000 siehe Haltbarkeit M-Disc
#-------------------------------------------------------------------------------------------------------------

uname -a > "${myTargetDir}"used_progs.txt
echo "--------------------------------------------------" >> "${myTargetDir}"used_progs.txt
par2 --version >> "${myTargetDir}"used_progs.txt
echo "--------------------------------------------------" >> "${myTargetDir}"used_progs.txt
zip --version >> "${myTargetDir}"used_progs.txt


#---------------------------------------------------------------------------------------------------------
# PAR2
#---------------------------------------------------------------------------------------------------------

rm -f "${myTargetDir}*.par2"

mySizeFiles=$(find "${myTargetDir}" -name "*" -type f -exec du -sk {} \; | nawk '{sum+=$1} END {print sum}')

if [ -z "$mySizeFiles" ];
then
   echo "..."
   echo "Fehler beim Feststellen der Dateigroessen...."
   echo "..."
   exit 2
fi

mySizeUnit="unknown"
mySizeLeftOnBluRay=0

if (( $mySizeFiles > 1048576 )); then
   mySizeFiles=$(( $mySizeFiles / 1048576 ))
   mySizeUnit="g"
elif (( $mySizeFiles > 1024 )); then
   mySizeFiles=$(( $mySizeFiles / 1024 ))
   mySizeUnit="m"
else
   mySizeUnit="k"
fi

mySizeLeftForPAR=$mySizeFiles

if [ "$mySizeUnit" == "g" ]; then
   mySizeLeftForPAR=$(( $myBluRaySizeG - $mySizeFiles ))
   if (( $mySizeLeftForPAR > $mySizeFiles )); then
      mySizeLeftForPAR=$mySizeFiles
   fi
   if (( $mySizeLeftForPAR < 0 )); then
      mySizeLeftForPAR=0
   fi
fi

echo "Platz für Recovery $mySizeLeftForPAR$mySizeUnit"

if (( $mySizeLeftForPAR > 0 )); then
   par2SizeCommand=$(echo "-r$mySizeUnit$mySizeLeftForPAR")
else
   echo "..."
   echo "Da tut was nicht beim par2 SizeLeft ist 0..."
   echo "...."
   exit 5
fi

myFileName="$(basename "$myTargetDir")"

if [ -z "$myFileName" ]; then
   myFileName="pardata"
fi

/usr/local/bin/par2 c -a "${myTargetDir}$myFileName" -v $par2SizeCommand -u -R "${myTargetDir}"*
if ! [ "$?" == "0" ]; then
   echo "..."
   echo "PAR2 hat wohl nicht geklappt => Abbruch"
   echo "..."
   exit 6
fi

#-------------------------------------------------------------------------------------------------------------
# BluRay-ISO erzeugen
#-------------------------------------------------------------------------------------------------------------

/usr/local/bin/mkisofs -udf -iso-level 4 -no-hfs -o "$myTargetDir$myFileName".iso "$myTargetDir"
if ! [ "$?" == "0" ]; then
   echo "..."
   echo "ISO Erzeugen hat wohl nicht geklappt => Abbruch"
   echo "..."
   exit 7
fi

#-------------------------------------------------------------------------------------------------------------
# Owner + Rechte
#-------------------------------------------------------------------------------------------------------------

chmod -R ugoa+rw "${myTargetDir}"
chown -R nobody:nogroup "${myTargetDir}"

exit 0
 
Zuletzt bearbeitet von einem Moderator:
Da gibt es wohl eine Vorgeschichte zu aber die konnte ich jetzt nicht finden. Warum willst du Bluray für Backups nutzen?
Ich hab schon seit Jahren keine optischen Medien mehr verwendet aber erinnere mich zur Hoch-Zeit von DVD Brennern an diverse Tests in der c't in denen es mehr oder weniger Glückssache war ob ein Medium nach längerer Zeit noch lesbar war oder nicht. Keine Ahnung ob sich das mit Blurays groß geändert hat. Ich würde meine Daten dann doch lieber Festplatten anvertrauen.
 
Klingt nicht schlecht. Ich frage mich nur, warum man unter Linux rar nutzt. Insb. wenn dann die par2 Dateien nicht durch rar sondern mit einem ext. OSS Tool erzeugt werden. Das wäre für mich einzig denkbare Vorteile von rar gegenüber einer OSS Löäsung für solche Backups.

Im Grunde mache ich das unter Windows ähnlich: das monatliche Backup wird mit 7zip in DVD Größe geteilt, danach par2 Dateien generiert und alles wird auf DVD+/-RW gebrannt.

Bevor ich meine DVD+/-RW noch weitere 10 Jahre ungenutzt im Schrank liegen lasse oder gleich entsorge, ist das eine von mehreren Varianten, das aktuelle Backups der für mich wichtigen Daten zu sichern. Die (derzeit 3 DVDs) könnte ich sogar, nach Corona und 100% HO, problemlos mit in die Firma nehmen und dort in meinem Schreibtich lagern.
 
Backup auf Optische Datenträger hat sich aus gutem Grund nicht durchgesetzt.
Entweder Platten oder Bänder.
 
LTO (gebraucht 4) war schon geplant aber a) müsste ich wohl den Contoller aktiv kühlen was ich so gelesen habe und b) ist LTFS Support wohl eingeschlafen und so wirklich plattformübergreifende Lösungen werden dann schon eng. Sinn vom Backup ist aber halt auch Plattformunabhängigkeit.

7Z hat unter FreeBSD keinen Maintainer mehr seit Jahren und fliegt jetzt raus, da war halt dann einfach rar der nächste Kandidat. Unrar ist zumindest ja "free". Rar-Splits kann man halt auch unter Windows ganz gut handeln.
Die nicht registrierte Rar Version macht glaube ich keine CRC oder Reparaturdaten die packt nur, deshalb dann PAR2.

Nun Platten habe ich ja schon 2x Raid-6 (RaidZ2) wobei das eine Raid-6 das Backup für das andere ist + Snapshots auf beiden System - es müssen also mindestens 6 HDDs gleichzeitig verteilt auf 2 System ausfallen bevor 1 Datenverlust eintritt - was schon ok ist.

Aber dennoch gibt es halt "Kerndaten" die ich zusätzlich sichern möchte, denke sowas hat doch fast jeder so einen kleinen heiligen persönlichen Datenkern xD

M-Disc, also nicht organische Datenträger, glaube ich sind schon halbwegs ok - wenn man die nicht mechanisch beschädigt wie auf dem Boden verteilen und mit dem Stuhl drüberrollen etc xD Das wäre ja Brennen und ab in Schrank. Das halt für mich nach LTO aktuell dann das nächstbeste.

Bei 2 Medien im Monat - als 25 im Jahr - können ja auch ein paar ausfallen es sind ja immer Komplettbackups der Kerndaten.

-----------------

Krass teste das gerade PAR2 braucht deutlich über 1 Std auf meinem Server um ~ 15 Gbyte zu PAR2en das echt doch länger als gedacht. Alle CPU Kerne sind auf 100% (zwar nur ein 1225V2 Xeon aber trotzdem......)
 
Zuletzt bearbeitet von einem Moderator:
fgordon schrieb:
Die nicht registrierte Rar Version macht glaube ich keine CRC oder Reparaturdaten die packt nur, deshalb dann PAR2.
Es muss natürlich jeder selber wissen. Da baut man sich ein Backup-Script, nutzt sonst OSS und spart an ein paar Euro für den Entwickler der Backup-SW. Aber gut zu wissen, auf welches OS ich damit definitv nicht wechseln werde, wenn sich bei FreeBSD kein Maintainer mehr für p7zip findet.

Unrar funktioniert m.W.n. auch nur mit dem closed source Teil des RAR-Entwicklers, auch wenn der kostenlos genutzt werden darf. Für mich wäre das als Basis für ein Langzeit-Archiv (wozu sonst M-Disc und nicht einfache BD-RE, die man nach 6-12 Monaten wieder überschreibt) nichts.

Und das dann im Vergleich zu den Kosten für 24 M-Disk BDs pro Jahr.

fgordon schrieb:
Krass teste das gerade PAR2 braucht fast 1 Std auf meinem Server um ~ 15 Gbyte zu PAR2en das echt doch länger als gedacht.
Entweder ist die CPU oder das Storage langsam. Mein i9-9900K braucht (allerdings auf einer Ram-Disk) für meine gut 10 GB keine zwei Minuten für 5% (die Standardgröße) Recover-Files. Wenn Du für 15 GB Nutzdaten 25 GB "voll" gemacht hast, sind das immerhin 40% Recovery-Daten. So vertrauensunwürdig wären mir M-Disc BRs nicht.
 
Mal ne frage zu PAR2, gibts unter FreeBSD ne GPU Beschleunigung ?
 
Unrar gibt es als komplett freie Version unter GPL https://github.com/Lesik/unrar-free

Die split Funktion in zip wollte ich mir eh mal anschauen ob die Plattformübergeifend funktioniert ohne dass man erst die Datei zusammensetzen muss.

Die Sache ist halt wenn ich eh pro Backup einen Rohling nutze und mit Disc-At-Once schreibe will ich halt den Platz nicht nutzlos verschenken xD

Hmmm das Storage liefert ~ 1800 MByte / sec kann also die 15 Gbyte in 10 Sekunden lesen - die CPU ist halt ein etwas älterer Xeon E3 1225 V2 der nur 4 Kerne hat und kein HT aber immerhin mit 3,2 Ghz Basistakt läuft.
Ergänzung ()

wupi schrieb:
Mal ne frage zu PAR2, gibts unter FreeBSD ne GPU Beschleunigung ?
Für NVidia ja https://github.com/chrsigg/par2tbb/blob/master/README_FIRST.txt allerdings "should be considered experimental" und seit 8 Jahren keine Updates....

Also eigentlich nicht mehr.

-------------------

Hmm ja das mit RAR stimmt schon irgendwie - habe auf "ZIP" umgestellt, das unterstützt ja auch File Splitting richtig gut habe ich gemerkt.
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: wupi
M-Disc, also nicht organische Datenträger, glaube ich sind schon halbwegs ok
Ja M-Disk wurde für sowas auch entwickelt, du redest ja aber von Blurays.
Par2 mildert das Problem allerdings schon ab. Im Zweifel dürfte ein Recovery aber recht lange dauert da das Laufwerk lange versuchen wird die Blöcke doch noch zu lesen.
 
Hab die BluRay M-Disc Lösung mit einem Pioneer BDR-212EBK im Einsatz - und finde das war für mich die richtige Wahl - vorerst xD

Die fertigen ISOs kann ich auf den Servern automatisch per script "mastern", und brenne die dann nur noch als ISO alle 2 Wochen mit CDBurnerXP. Sind ja nur echte "Not-Backups"
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben