Guten Morgen,
Habe mein Script erweitert.
currentDate=$(date +"%Y%m%d_%H%M%S")
Bewirkt das immer ein Vollbackup erzeugt wird zu jeder Zeit, später wenn das bauen vorbei ist wird das geändert.
Solange das steht können viele Backupversionen erhalten bleiben, weil der Ordnername das Datum und Uhrzeit ist
pi@raspberrypi:/media/nc-backup/cloudbackup $ ls -al
insgesamt 24
drwxr-xr-x 6 pi pi 4096 Feb 28 12:20 .
drwxrwxr-x 5 pi pi 4096 Feb 26 18:07 ..
drwxr-xr-x 5 root root 4096 Feb 28 00:03 20210228_000357
drwxr-xr-x 5 root root 4096 Feb 28 00:07 20210228_000731
drwxr-xr-x 5 root root 4096 Feb 28 11:50 20210228_115025
drwxr-xr-x 5 root root 4096 Feb 28 12:20 20210228_122002
pi@raspberrypi:/media/nc-backup/cloudbackup $
Vollständiger Code
#!/bin/bash
#==========================================================================
# ncbackup.sh von RS-NooNoo
#
# Script-Name : ncbackup.sh
# Version : 1.1
# Datum : 27.02.2021
# Lizenz : Frei verfügbar
# Beschreibung : Einfaches und für nicht wichtige Daten, es ist keine Verschlüsselung vorhanden.
# Das Script wurde einfach gehalten, so dass man es leicht an eigene Ansprüche anpassen kann.
# Backupverzeichniss ist /cloudbackup, der Mountpoint /media/nc-backup
# Script ausführbar machen mit chmod +x ncbackup.sh
# Starten mit sudo ./ncbackup.sh
#
# Distanzierung : Die Nutzung der Anleitung erfolgt auf eigene Gefahr, für jegliche Schäden wird keine Garantie/Haftung übernommen!
#
# Hilfe : Im Forum https://forum-raspberrypi.de/forum/thread/51744-backup-von-nextcloud/
# Danksagung : Danke an alle wo bei diesem kleinem Script geholfen haben. "@framp, @hyle
#
#====================================================================================================
#version 1.1
#Geändert: Mount auf UUID gesetzt nicht wie vorher auf sdc1 könnte sich ändern.
# Mehrere Versionen des Backups.
#---------------------------------------------------------------------
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
#------Variablen anpassen von Nextcloud----------
clouddir="/var/www/html/nextcloud" #wo liegt das html von Nextcloud
#Clouddatadir = Wo liegen die Daten von Nextcloud.
clouddatadir="/media/cloud/NC"
#dbname = Die Datenbank wo Nextcloud liegt.
dbname="nextcloud"
#-----Backup variablen anpassen-----
#Mount von der HDD/SSD UUID eintragen!
HDDUUID="d70e6cc5-36db-4e21-8200-b2fb4590b64a"
backuppoint="/media/nc-backup"
#backupverzeichnis = Wo sollen die Daten gespeichert werden
backupverzeichnis="/media/nc-backup/cloudbackup"
backupvers="10" #Wieviele Versionen sollen behalten werden, gerechnet in Tage (default =10 Tage)
#-----------Ab hier nichts ändern----------------------------
currentDate=$(date +"%Y%m%d_%H%M%S")
backupdir="${backupverzeichnis}/${currentDate}/"
sudo mount UUID="${HDDUUID}" "${backuppoint}"
echo der Mountpunkt "$backuppoint" wurde auf "$HDDUUID" gesetzt.
sudo lsblk
#Erstelle Backupverzeichnisstruktur falls noch nicht voranden
if [ ! -d "${backupdir}" ]
then
mkdir -p "${backupdir}"
else
errorecho "ERROR: das Backupverzeichniss ${backupdir} ist vorhanden!"
exit 1
fi
mkdir "${backupdir}"/www
mkdir "${backupdir}"/db
mkdir "${backupdir}"/data
echo Schalte Cloud in den Maintanence Mode...
cd "${clouddir}"
sudo -u www-data php occ maintenance:mode --on
echo Sichere Webverzeichnis...
rsync --progress -h -a --delete "${clouddir}" "${backupdir}"/www
echo Sichere das Datenverzeichnis...
rsync --progress -h -a --delete "${clouddatadir}" "${backupdir}"/data
echo Lösche alte SQL Backup...
rm "${backupdir}"/db/cloud.sql
echo Erstelle neues SQL Backup...
mysqldump --single-transaction "${dbname}" > "${backupdir}"/db/cloud.sql
# Alte Daten löschen
echo Dateien wo älter wie "${backupvers}" Tage löschen.....
find "${backupdir}" -type f -mtime +"${backupvers}" -delete
echo Leere Ordner löschen
find "${backupdir}" -type d -empty -delete
echo Schalte Cloud wieder aktiv...
sudo -u www-data php occ maintenance:mode --off
echo Sicherung abgeschlossen
#umount der Backupplatte
sudo umount "${backuppoint}"
echo Sicherung erfolgreich und HDD/SSD "${backuppoint}" vom System ausgeworfen
Alles anzeigen
Könnt Ihr wieder anschauen, freue mich auf Tips und Vorschläge.
Frage, vielleicht weis das jemand" Wie kann ich das Script abbrechen, wenn ein da ein Fehler ist".
Beispiel UUID ist falsch bzw. wird nicht gefunden, exit1 beendet das Script nicht.
Irgendwie habe ich da ein denkfehler
LG