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)
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)
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: