ausblenden > Anleitungen und FAQ

Nextcloud auf einem Raspberry Pi 3 mit NextCloudPi

<< < (3/6) > >>

MacFlieger:
10. Dateiserver einrichten (NAS)

Auf die Datenverzeichnisse der Nextcloud kann auch über SAMBA zugegriffen werden. Damit sind die Daten dann im lokalen Netzwerk von anderen Rechnern aus erreichbar.

Die Konfiguration dazu erfolgt über das NextCloudPi Panel.

samba

Hiermit wird der SAMBA-Server konfiguriert und eingeschaltet. Die Option "ACTIVE" auswählen, ein Kennwort für den Zugriff eingeben und auf "Run" klicken.

nc-scan-auto

Da die Nextcloud nichts von Änderungen der Dateien mitbekommt, wenn man diese über SAMBA verändert, müssen die Dateien regelmäßig gescannt werden.
Die Option "ACTIVE" auswählen, ein Zeitintervall für den Scan eingeben und auf "Run" klicken.

Auf dem Mac taucht der Raspberry im Finder als "nextcloudpi" auf.

MacFlieger:
11. Nützliche Skripte und Backup

Für wiederkehrende Aufgaben und Funktionen habe ich mir jeweils ein Skript geschrieben und diese in "/root" gespeichert.

Wartungsmodus ein- und ausschalten

Hiermit kann der Wartungsmodus von Nextcloud ein- bzw. ausgeschaltet werden.

wartungan:

--- Code: ---#!/bin/bash

# Wartungsmodus anschalten
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
--- Ende Code ---

wartungaus:

--- Code: ---#!/bin/bash

# Wartungsmodus anschalten
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
--- Ende Code ---

Boot- und Dateisystemcheck

Hiermit können die wichtigsten Informationen vom letzten Bootvorgang und der Zustand beim letzten Dateisystemcheck ausgegeben werden.
check:

--- Code: ---#!/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

--- Ende Code ---

Backupordner mounten und entmounten

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

--- Code: ---#!/bin/bash

# Backupordner mounten
mount -t cifs //192.168.1.1/raspberry /media/backup -o user=username,pass=kennwort,vers=2.0
--- Ende Code ---

umountbackup:

--- Code: ---#!/bin/bash

# Backupordner umounten
umount /media/backup
--- Ende Code ---

Dateiberechtigungen korrigieren

Mit diesem Skript werden die Dateiberechtigungen der Nextcloudinstallation auf die richtigen Werte gesetzt.

setPermissions:

--- Code: ---#!/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}/
--- Ende Code ---

Datenbank und Daten sichern bzw. wiederherstellen

Es werden in dem Ordner "/media/backup/daten" Backups der Datenbank und des Ordners "nextcloud" abgelegt. Es werden jeweils 7 Backups behalten.

backup:

--- Code: ---#!/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
--- Ende Code ---

Zum Wiederherstellen eines Backups muss in den Ordner des gewünschten Backups gewechselt und dort das folgende Skript gestartet werden.

restore:

--- Code: ---#!/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
--- Ende Code ---

komplettes Image sichern

Es werden in dem Ordner "/media/backup/image" Image vom kompletten Laufwerk abgelegt. Es werden jeweils 3 Backups behalten.

image:

--- Code: ---#!/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
--- Ende Code ---

Raspberry-Software bzw. Nextcloud updaten

Mit diesem Skript kann die grundlegende Raspberry-Software aktualisiert werden.

update-raspi:

--- Code: ---#!/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
--- Ende Code ---

Mit diesem Skript kann Nextcloud aktualisiert werden.

update-nextcloud:

--- Code: ---#!/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
--- Ende Code ---

tägliches Backup der Nextcloud

Ich lasse täglich um 2 Uhr die Nextcloud in den Ordner /media/backup/daten speichern.

Hierzu muss ein crontab-Eintrag erzeugt werden:

--- Code: ---sudo crontab -e
--- Ende Code ---
An das Ende der Datei:

--- Code: ---0 2 * * * /root/backup >/dev/null 2>&1
--- Ende Code ---
Und mit Ctrl-X, J und Return beenden.

wöchentliches Backup der SD-Karte

Ich lasse wöchentlich Samstags um 3:00 Uhr das komplette Laufwerk in den Ordner /media/backup/image speichern.

Hierzu wieder einen crontab-Eintrag erzeugen:

--- Code: ---sudo crontab -e
--- Ende Code ---
Wieder ans Ende der Datei:

--- Code: ---0 3 * * 6 /root/image >/dev/null 2>&1
--- Ende Code ---
Und erneut mit Ctrl-X, J und Return beenden.

Quellen:
https://docs.nextcloud.com/server/13/admin_manual/maintenance/backup.html
https://docs.nextcloud.com/server/13/admin_manual/maintenance/restore.html
https://docs.nextcloud.com/server/13/admin_manual/maintenance/update.html
http://raspberry.tips/raspberrypi-einsteiger/raspberry-pi-datensicherung-erstellen/

MacFlieger:
12. Ergänzungen und Tipps

Softwarepakete installieren

Softwarepaket xy kann mit den folgenden Befehlen installiert werden:

--- Code: ---sudo apt-get install xy
--- Ende Code ---

Softwarepakete deinstallieren

Softwarepaket xy kann mit den folgenden Befehlen deinstalliert werden:

--- Code: ---sudo apt-get purge xy
sudo apt-get clean
sudo apt-get autoremove --purge
--- Ende Code ---
"update" aktualisiert die Paketquellen
"clean" löscht den Cache der heruntergeladenen Pakete
"autoremove" löscht alle nicht mehr benötigten Pakete

Filesystemcheck und -reparatur beim Starten

Soll das Datensystem bei jedem Start überprüft und gegebenenfalls repariert werden, muss ein Parameter zur Kernelbefehlszeile hinzugefügt werden. Hierzu wird ins Terminal eingegeben:

--- Code: ---sudo nano /boot/cmdline.txt
--- Ende Code ---
In die Befehlszeile wird dann hinter dem Eintrag "fsck.repair=yes" noch zusätzlich "fsck.mode=force" eingetragen.
Editor mit Ctrl-X, J und Return beenden und neu starten.

Die Ausgaben der Überprüfung sind dann in der Datei "/var/log/boot.log" zu finden.
Genaue Informationen über den Zustand der SD-Karte, inklusive Status des Dateisystems und Zeit des letzten Checks, erhält man mit:

--- Code: ---sudo tune2fs -l /dev/sda2
--- Ende Code ---

MacFlieger:
13. SSH-Login mit Schlüsselauthentifizierung

Wenn man sich öfters per SSH auf dem Raspberry anmeldet, kann es nervig sein, immer ein langes und gutes Kennwort einzugeben.
Neben dem Login per Kennwort bietet SSH auch die Möglichkeit, sich mit einem Paar aus privatem und öffentlichem Schlüssel anzumelden. Hierzu wird auf dem Computer ein solches Paar erzeugt und der der öffentliche Schlüssel auf den Raspberry kopiert. Danach kann sich jeder, der im Besitz des privaten Schlüssels ist, direkt ohne weitere Kennworteingabe anmelden.

Erzeugen des Schlüsselpaares und Kopieren auf den Raspberry

Im Terminal des Computers gibt man den folgenden Befehl ein:

--- Code: ---ssh-keygen
--- Ende Code ---
Danach werden mehrere Sachen abgefragt, die man alle durch Return-Drücken bestätigt:
- Speicherort des Schlüsselpaares, vorgeschlagen wird /Users/Name/.ssh/id_rsa
- Optionales Kennwort
- Erneut das optionale Kennwort
Es werden nun zwei Dateien erzeugt. "id_rsa" ist der private Schlüssel, "id_rsa.pub" ist der öffentliche Schlüssel.
Nun muss der öffentliche Schlüssel noch auf den Raspberry kopiert werden (dabei wird das Kennwort des raspberry abgefragt):

--- Code: ---scp ~/.ssh/id_rsa.pub pi@nextcloudpi:authorized_keys
--- Ende Code ---

Auf dem Raspberry an die richtige Stelle kopieren

Im Terminal des Raspi gibt man die folgenden Befehle ein:

--- Code: ---mkdir ~/.ssh
mv authorized_keys ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
--- Ende Code ---

Ab jetzt kann man sich ohne Kennwort von dem Computer aus mit folgendem Befehl anmelden:

--- Code: ---ssh pi@nextcloudpi
--- Ende Code ---

MacFlieger:
Reserviert für Ergänzungen

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Antwort

Zur normalen Ansicht wechseln