11. Nützliche Skripte und BackupFür wiederkehrende Aufgaben und Funktionen habe ich mir jeweils ein Skript geschrieben und diese in "/root" gespeichert.
Wartungsmodus ein- und ausschaltenHiermit kann der Wartungsmodus von Nextcloud ein- bzw. ausgeschaltet werden.
wartungan:
#!/bin/bash
# Wartungsmodus anschalten
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
wartungaus:
#!/bin/bash
# Wartungsmodus anschalten
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
Boot- und DateisystemcheckHiermit können die wichtigsten Informationen vom letzten Bootvorgang und der Zustand beim letzten Dateisystemcheck ausgegeben werden.
check:
#!/bin/bash
echo "------------------------------------------------------"
echo "Eintraege vom letzten Boot"
echo
more /var/log/boot.log
echo "------------------------------------------------------"
echo "Letzter Check und Zustand des Dateisystems"
echo
tune2fs -l /dev/sda2 |grep Last\ checked
tune2fs -l /dev/sda2 |grep Filesystem\ state
Backupordner mounten und entmountenMit den folgenden Skripten wird eine Sambafreigabe als Backupordner gemountet bzw. entmountet. In den Skripten müssen natürlich die eigene Freigabe und das Kennwort geändert werden. Der Backupordner ist dann unter "/media/backup" verfügbar.
mountbackup:
#!/bin/bash
# Backupordner mounten
mount -t cifs //192.168.1.1/raspberry /media/backup -o user=username,pass=kennwort,vers=2.0
umountbackup:
#!/bin/bash
# Backupordner umounten
umount /media/backup
Dateiberechtigungen korrigierenMit diesem Skript werden die Dateiberechtigungen der Nextcloudinstallation auf die richtigen Werte gesetzt.
setPermissions:
#!/bin/bash
ncpath='/var/www/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'
printf "chmod Files and Directories\n"
find ${ncpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ncpath}/ -type d -print0 | xargs -0 chmod 0750
printf "chown Directories\n"
chown -R ${htuser}:${htgroup} ${ncpath}/
Datenbank und Daten sichern bzw. wiederherstellenEs werden in dem Ordner "/media/backup/daten" Backups der Datenbank und des Ordners "nextcloud" abgelegt. Es werden jeweils 7 Backups behalten.
backup:
#!/bin/bash
backup=/media/backup/daten
anzahl=7
datum=`date +%Y-%m-%d_%H-%M-%S`
# Dienst anhalten
/root/wartungan
# Backupordner mounten
/root/mountbackup
# Ordner anlegen
mkdir $backup/$datum
# Backup erstellen
cp -R /var/www/nextcloud $backup/$datum/
mysqldump --single-transaction -h localhost -u root -p60a8sbojRKWfpBYgy0SK4tXMBNivzArT5Kr5ntBaE04= nextcloud >$backup/$dat$
# Ordner loeschen
ls -trd $backup/* | head -n-$anzahl | xargs rm -rf
# Backupordner umounten
/root/umountbackup
# Dienst wieder starten
/root/wartungaus
Zum Wiederherstellen eines Backups muss in den Ordner des gewünschten Backups gewechselt und dort das folgende Skript gestartet werden.
restore:
#!/bin/bash
# Dienst anhalten
echo "------------------------------------------------------"
echo "Wartungsmodus aktivieren"
/root/wartungan
# Daten zurueckkopieren
echo "------------------------------------------------------"
echo "Daten kopieren"
rm -r /var/www/nextcloud
cp -R nextcloud /var/www/
# DB-Backup zurueckkopieren
echo "------------------------------------------------------"
echo "DB-Backup kopieren"
mysql -h localhost -u root -pKennwort -e "DROP DATABASE nextcloud;CREATE DATABASE next$
mysql -h localhost -u root -pKennwort nextcloud <nextcloud.sql
# Dateiberechtigungen korrigieren
echo "------------------------------------------------------"
echo "Dateiberechtigungen korrigieren"
/root/setPermissions
# Dienst wieder starten
echo "------------------------------------------------------"
echo "Wartungsmodus deaktivieren"
/root/wartungaus
komplettes Image sichernEs werden in dem Ordner "/media/backup/image" Image vom kompletten Laufwerk abgelegt. Es werden jeweils 3 Backups behalten.
image:
#!/bin/bash
backup=/media/backup/image
anzahl=3
datum=`date +%Y-%m-%d_%H-%M-%S`
dienste="service mysql"
# Backupordner mounten
/root/mountbackup
# Dienste anhalten
/root/wartungan
$dienste stop
# Backup erstellen
dd if=/dev/sda of=$backup/$datum.img bs=1MB
# Dienste wieder starten
$dienste start
/root/wartungaus
# Backups loeschen
ls -trd $backup/* | head -n-$anzahl | xargs rm -rf
# Backupordner umounten
/root/umountbackup
Raspberry-Software bzw. Nextcloud updatenMit diesem Skript kann die grundlegende Raspberry-Software aktualisiert werden.
update-raspi:
#!/bin/bash
echo "------------------------------------------------------"
echo "Wartungsmodus aktivieren"
echo
/root/wartungan
echo "------------------------------------------------------"
echo "Nach Updates suchen, installieren und aufraeumen"
echo
apt-get update
apt-get dist-upgrade
apt-get clean
apt-get autoremove --purge
echo "------------------------------------------------------"
echo "Wartungsmodus deaktivieren"
echo
/root/wartungaus
Mit diesem Skript kann Nextcloud aktualisiert werden.
update-nextcloud:
#!/bin/bash
echo "------------------------------------------------------"
echo "Wartungsmodus aktivieren"
echo
/root/wartungan
echo "------------------------------------------------------"
echo "Nach Updates suchen, installieren und aufraeumen"
echo
sudo -u www-data php /var/www/nextcloud/updater/updater.phar
echo "------------------------------------------------------"
echo "Wartungsmodus deaktivieren"
echo
/root/wartungaus
tägliches Backup der NextcloudIch lasse täglich um 2 Uhr die Nextcloud in den Ordner /media/backup/daten speichern.
Hierzu muss ein crontab-Eintrag erzeugt werden:
sudo crontab -e
An das Ende der Datei:
0 2 * * * /root/backup >/dev/null 2>&1
Und mit Ctrl-X, J und Return beenden.
wöchentliches Backup der SD-KarteIch lasse wöchentlich Samstags um 3:00 Uhr das komplette Laufwerk in den Ordner /media/backup/image speichern.
Hierzu wieder einen crontab-Eintrag erzeugen:
sudo crontab -e
Wieder ans Ende der Datei:
0 3 * * 6 /root/image >/dev/null 2>&1
Und erneut mit Ctrl-X, J und Return beenden.
Quellen:
https://docs.nextcloud.com/server/13/admin_manual/maintenance/backup.htmlhttps://docs.nextcloud.com/server/13/admin_manual/maintenance/restore.htmlhttps://docs.nextcloud.com/server/13/admin_manual/maintenance/update.htmlhttp://raspberry.tips/raspberrypi-einsteiger/raspberry-pi-datensicherung-erstellen/