Hier zeige ich euch, wie ihr eure Cloud (in meinem Fall Nextcloud) auf euren Raspberry Pi (an angeschlossenen USB Festplatten) backupen könnt.

Unser Ziel ist es, dass wir unseren Raspberry Pi starten und dieser sich alle Daten unserer Cloud downloadet. So haben wir immer ein „offline Backup“.

Derzeit unterstützt rclone folgende Dienste:

  • 1Fichier
  • Amazon Drive
  • Amazon S3
  • Backblaze B2
  • Box
  • Citrix ShareFile
  • Dropbox
  • FTP
  • Google Cloud Storage
  • Google Drive
  • Google Photos
  • HTTP
  • Mail.ru Cloud
  • Mega
  • Microsoft Azure Blob Storage
  • Microsoft OneDrive
  • OpenDrive
  • OpenStack Swift
  • pCloud
  • premiumize.me
  • put.io
  • QingStor
  • Seafile
  • SFTP
  • SugarSync
  • Tardigrade
  • WebDAV

Die komplette Liste aller Dienste findet ihr hier.

1. rclone installieren

Im ersten Schritt downloaden und installieren wir rclone. Dazu gebt ihr folgenden Befehl ein:

curl https://rclone.org/install.sh | sudo bash

2. Nextcloud WebDAV URL ermitteln

In diesem Schritt suchen wir uns unsere Nextcloud WebDAV URL heraus. Diesen Schritt benötigt ihr nur, wenn ihr diese nicht kennt.

Um die URL zu sehen geht ihr im Browser auf eure Nextcloud Instanz und dann auf „Dateien“.

Anschließend klickt ihr ganz unten auf den Button „Einstellungen“.

Nun seht ihr eure Nextcloud WebDAV URL.

Diese benötigen wir für den nächsten Schritt. Also lasst dieses Fenster offen.

Die URL ist folgendermaßen aufgebaut:

https://<euredomain>.de/remote.php/dav/files/<Nutzername>/

3. rclone per Konsole konfigurieren

Dazu gebt ihr folgenden Befehl ein:

rclone config

Nun solltet ihr folgendes sehen:

pi@raspberrypi:~ $ rclone config
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> 

Nun müsst ihr 2 Quellen konfigurieren. Eine Quelle ist unsere Cloud (Nextcloud) und die andere ist unser lokaler Ordner (externe Festplatte).

3.1 rclone für Nextcloud konfigurieren

Nun drückt ihr „n“ für „New remote“.

Anschließend gebt ihr einen Namen an. Ich nenne es hier „nextcloud“.

name> nextcloud

Anschließend bekommt ihr eine Reihe von Diensten angezeigt. Ziemlich unten solltet ihr Webdav finden. Bei mir die Nummer 34.

33 / Union merges the contents of several upstream fs
   \ "union"
34 / Webdav
   \ "webdav"
35 / Yandex Disk
   \ "yandex"
..
..
Storage> 34

Also geben wir „34“ ein.

Nun werden wir nach unserer WebDAV URL gefragt. Hier gebt ihr die URL ein, welche wir eben im Nextcloud Webinterface gesehen haben.

url> https://<euredomain>.de/remote.php/dav/files/<Nutzername>/

Anschließend wählt ihr „1“ für Nextcloud.

Name of the Webdav site/service/software you are using
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
 1 / Nextcloud
   \ "nextcloud"
 2 / Owncloud
   \ "owncloud"
 3 / Sharepoint
   \ "sharepoint"
 4 / Other site/service or software
   \ "other"
vendor> 1

Nun werdet ihr nach eurem Accountnamen gefragt. Gebt diesen nun ein.

User name
Enter a string value. Press Enter for the default ("").
user> admin

Jetzt gebt ihr „y“ ein.

Password.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g/n> y

Hier gebt ihr euer Passwort ein.

Enter the password:
password:
Confirm the password:
password:

Nun könnt ihr noch ein Token eingeben. Dies benötigen wir nicht und drücken einfach „ENTER“.

Die erweiterte Konfiguration benötigen wir auch nicht und geben daher „n“ ein.

Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> n

rclone fasst nun alle Eingaben zusammen. So sieht es bei mir aus:

Remote config
--------------------
[nextcloud]
type = webdav
url = https://<euredomain>.de/remote.php/dav/files/admin/
vendor = nextcloud
user = admin
pass = *** ENCRYPTED ***
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

Wenn alles stimmt könnt ihr nun „y“ eingeben.

3.2 rclone für lokales Verzeichnis einrichten

Nun erstellen wir noch die Konfiguration für unser lokales Verzeichnis.

Dazu gebt ihr wieder „n“ ein.

Current remotes:

Name                 Type
====                 ====
nextcloud            webdav

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n

Dies nenne ich „lokal“.

name> lokal

Nun müsst ihr „Local Disk“ suchen. Bei mir die Nummer 19.

18 / Koofr
   \ "koofr"
19 / Local Disk
   \ "local"
20 / Mail.ru Cloud
   \ "mailru"
..
..
Storage> 19

Bei der nachfolgenden Frage drückt ihr einfach „ENTER“.

Disable UNC (long path names) conversion on Windows
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
 1 / Disables long file names
   \ "true"
nounc> 

Eine erweiterte Konfiguration benötigen wir hier nicht.

Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> n

Die Zusammenfassung könnt ihr mit „y“ bestätigen.

Remote config
--------------------
[lokal]
type = local
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

Nun solltet ihr 2 Quellen eingetragen haben.

Current remotes:

Name                 Type
====                 ====
lokal                local
nextcloud            webdav

4. rclone Konfiguration testen

4.1 Nextcloud Konfiguration testen

Ihr könnt eure rclone Konfiguration testen, indem ihr folgenden Befehl eingebt:

rclone ls nextcloud:

Nun solltet ihr eine Übersicht eurer Nextcloud sehen:

pi@raspberrypi:~ $ rclone ls nextcloud:
  5748719 Nextcloud Manual.pdf
  3963036 Nextcloud intro.mp4
    50598 Nextcloud.png
   791921 Reasons to use Nextcloud.pdf
   593508 Photos/Birdie.jpg
   457744 Photos/Frog.jpg
   474653 Photos/Gorilla.jpg
  2170375 Photos/Library.jpg
   797325 Photos/Nextcloud community.jpg
      150 Photos/Readme.md
   567689 Photos/Steps.jpg
   167989 Photos/Toucan.jpg
   427030 Photos/Vineyard.jpg
     1095 Documents/Example.md
   374008 Documents/Nextcloud flyer.pdf
      136 Documents/Readme.md
    25150 Documents/Welcome to Nextcloud Hub.docx

Für mehr Übersicht könnt ihr auch folgenden Befehl eingeben:

pi@raspberrypi:~ $ rclone tree nextcloud:
/
├── Documents
│   ├── Example.md
│   ├── Nextcloud flyer.pdf
│   ├── Readme.md
│   └── Welcome to Nextcloud Hub.docx
├── Nextcloud Manual.pdf
├── Nextcloud intro.mp4
├── Nextcloud.png
├── Photos
│   ├── Birdie.jpg
│   ├── Frog.jpg
│   ├── Gorilla.jpg
│   ├── Library.jpg
│   ├── Nextcloud community.jpg
│   ├── Readme.md
│   ├── Steps.jpg
│   ├── Toucan.jpg
│   └── Vineyard.jpg
└── Reasons to use Nextcloud.pdf

2 directories, 17 files

Ihr könnt euch auch beispielsweise nur den Ordner „Photos“ anzeigen lassen:

pi@raspberrypi:~ $ rclone ls nextcloud:Photos
   593508 Birdie.jpg
   457744 Frog.jpg
   474653 Gorilla.jpg
  2170375 Library.jpg
   797325 Nextcloud community.jpg
      150 Readme.md
   567689 Steps.jpg
   167989 Toucan.jpg
   427030 Vineyard.jpg

4.2 Lokale Konfiguration testen

Nun können wir auch unsere lokale Konfiguration testen. Mein Backup soll später auf meine externe Festplatte gespeichert werden. Mein Dateipfad lautet:

/media/pi/KINGSTON/Backup

Diesen Pfad werde ich nun mit rclone testen. Zu Testzwecken habe ich in dem Ordner eine leere Datei namens „hallo“ erstellt.

pi@raspberrypi:~ $ rclone ls lokal:/media/pi/KINGSTON/Backup
        0 hallo

5. rclone Funktionsübersicht

Hier eine Übersicht der wichtigsten Programmfunktionen

Auf der offiziellen Herstellerhomepage könnt ihr euch alle Funktionen im Detail anschauen.

Dies sind die beiden wichtigsten Funktionen für unser Vorhaben.

rclone copy - Copy files from source to dest, skipping already copied.
rclone sync - Make source and dest identical, modifying destination only.
  • rclone copy
    • Hier werden alle Dateien von der Quelle ins Ziel kopiert. Bereits existierende Dateien bleiben unverändert. Es wird also keine Dateien gelöscht, die bereits im Ziel vorhanden sind und nicht mehr in der Quelle.
  • rclone sync
    • Hier werden alle Dateien von der Quelle ins Ziel kopiert. Der Unterschied ist jedoch, dass auch Dateien im Ziel gelöscht werden, wenn diese nicht mehr in der Quelle existieren. Sync sorgt also dafür, dass Quelle und Ziel 1:1 identisch sind, während bei copy mehr Dateien im Ziel sind als in der Quelle vorhanden.

6. rclone Synchronisation starten

Wir wählen für unsere Zwecke die Funktion „copy“. Hier der Funktionsaufruf:

rclone copy source:sourcepath dest:destpath

Bei uns ist das also:

rclone copy nextcloud: lokal:/media/pi/KINGSTON/Backup -v

Mit diesen Befehl werden also unsere Dateien von der Nextcloud auf unsere lokale Festplatte kopiert. Der Parameter „-v“ bewirkt, dass ihr am Schluss eine Zusammenfassung seht.

pi@raspberrypi:~ $ rclone copy nextcloud: lokal:/media/pi/KINGSTON/Backup -v
2021/01/18 16:22:10 INFO  : Nextcloud.png: Copied (new)
2021/01/18 16:22:10 INFO  : Reasons to use Nextcloud.pdf: Copied (new)
2021/01/18 16:22:11 INFO  : Photos/Birdie.jpg: Copied (new)
2021/01/18 16:22:12 INFO  : Photos/Frog.jpg: Copied (new)
2021/01/18 16:22:12 INFO  : Nextcloud intro.mp4: Copied (new)
2021/01/18 16:22:12 INFO  : Nextcloud Manual.pdf: Copied (new)
2021/01/18 16:22:12 INFO  : Photos/Gorilla.jpg: Copied (new)
2021/01/18 16:22:13 INFO  : Photos/Library.jpg: Copied (new)
2021/01/18 16:22:13 INFO  : Photos/Nextcloud community.jpg: Copied (new)
2021/01/18 16:22:13 INFO  : Photos/Readme.md: Copied (new)
2021/01/18 16:22:13 INFO  : Photos/Steps.jpg: Copied (new)
2021/01/18 16:22:14 INFO  : Photos/Toucan.jpg: Copied (new)
2021/01/18 16:22:14 INFO  : Documents/Example.md: Copied (new)
2021/01/18 16:22:14 INFO  : Photos/Vineyard.jpg: Copied (new)
2021/01/18 16:22:14 INFO  : Documents/Nextcloud flyer.pdf: Copied (new)
2021/01/18 16:22:14 INFO  : Documents/Readme.md: Copied (new)
2021/01/18 16:22:14 INFO  : Documents/Welcome to Nextcloud Hub.docx: Copied (new)
2021/01/18 16:22:14 INFO  : 
Transferred:   	   15.842M / 15.842 MBytes, 100%, 3.040 MBytes/s, ETA 0s
Transferred:           17 / 17, 100%
Elapsed time:         6.9s

7. Backup per Cron automatisieren

Nun habt ihr die Möglichkeit diesen Befehl automatisch per Cron zu einer bestimmten Uhrzeit ausführen zu lassen. Dazu gebt ihr folgenden Befehl ein:

crontab -e

Hier wählt ihr „1“.

pi@raspberrypi:~ $ crontab -e
no crontab for pi - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.tiny
  3. /bin/ed

Choose 1-3 [1]: 1

Nun ergänzt ihr am Ende der Datei folgenden Eintrag:

0 5 * * * rclone copy nextcloud: lokal:/media/pi/KINGSTON/Backup -v

Dies bewirkt, dass euer Pi jeden Tag um 05:00 Uhr ein Backup eurer Cloud erstellt. Mehr Informationen zu Cron und den Uhrzeiten findet ihr beispielsweise hier.

8. Backup automatisieren und Raspberry Pi danach herunterfahren

Nun wollen wir unseren Pi dazu bringen, dass wir ihn einschalten, er ein Backup erstellt und sich danach wieder herunterfährt.

Dazu legen wir eine neue Datei an:

nano /home/pi/backup.sh

Hier gebt ihr folgendes ein:

rclone copy nextcloud: lokal:/media/pi/KINGSTON/Backup -v
/usr/sbin/shutdown +3

Das „+3“ bewirkt, dass der Pi erst in 3 Minuten später heruntergefahren wird. Ihr benötigt so eine Zeit, da sich sonst der Pi immer direkt wieder beenden würde und ihr keine Chance mehr habt auf ihn zuzugreifen.

Nun machen wir die Datei noch ausführbar:

chmod +x /home/pi/backup.sh

Nun legen wir noch einen root cronjob an. Dies ist wichtig, da nur der root Nutzer das System ohne Probleme herunterfahren kann.

sudo crontab -e

Hier wählt ihr „1“.

pi@raspberrypi:~ $ sudo crontab -e
no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.tiny
  3. /bin/ed

Choose 1-3 [1]: 1

Nun fügt ihr am Ende folgende Zeile hinzu:

@reboot /home/pi/backup.sh

Wenn ihr zuvor die Konfiguration mit dem Nutzer „pi“ durchgeführt habt, dann müsst ihr diese Konfiguration jetzt noch für den Nutzer „root“ durchführen oder folgenden Befehl ausführen:

mkdir -p /root/.config/rclone/
cp /home/pi/.config/rclone/rclone.conf /root/.config/rclone/rclone.conf

Anschließend könnt ihr euren Pi neu starten und es ausprobieren.

9. rclone E-Mail versenden nach Backup

Hier zeige ich euch, wie ihr euch eine E-Mail schicken lassen könnt nach dem Backup. Dazu benötigt ihr noch einen SMTP Client. Dessen Installation habe ich hier beschrieben.

Wenn ihr diesen installiert und konfiguriert habt, könnt ihr eine neue Datei anlegen:

nano backup-email.sh

Inhalt:

#!/bin/bash
rclone -v copy nextcloud: lokal:/media/pi/KINGSTON/Backup  --log-file rclone-log.txt
mail -s "Backup vom $(date +%Y-%m-%d) $(date +%H:%M)" <ziel@email.de> < rclone-log.txt
rm rclone-log.txt

Hier müsst ihr nur noch eure E-Mail Adresse eintragen.

Nun machen wir die Datei noch ausführbar:

chmod +x backup-email.sh

Anschließend bekommt ihr nach jedem Backup eine E-Mail geschickt.

Dieses Skript könnt ihr nun auch per Cron automatisch starten. Wie dies funktioniert habe ich weiter oben schon beschrieben.

10. Quellen

https://www.bitblokes.de/rclone-rsync-fuer-die-cloud-backups-in-nextcloud-und-andere-cloud-anbieter/

https://rclone.org/commands/

Teile diesen Beitrag
Christian

Categories:

Keine Kommentare vorhanden

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Spenden

Persönliche Informationen

Spendensumme: 2€