Probleme mit selbstgebasteltem Backup-Script auf Raspberry Pi (rsync, Shell)
Hallo,
laut meiner Recherche kann man kein vollständiges Backup des Raspberry Pi (auf meinem läuft Raspbian) im laufenden Betrieb anfertigen. Also sodass sich das System komplett selbst beispielsweise auf einem NAS sichert. Ich habe mir nun ein Script gebastelt, welches stattdessen einfach die wichtigsten Dateien auf meinem NAS sichert, sodass ich im Fall eines Crashes meiner SD-Karte das System neu aufspielen müsste, aber dennoch sämtliche Scripts und wichtigen Einstellungen sofort wiederherstellen könnte.
Das Script sieht so aus
Die Verzeichnisstrukturen sichere ich mit, da ich noch Anfänger bin und in diesem Fall einfacher rekonstruieren kann, in welchen Pfad die entsprechenden Dateien ggf. nach einer Neuinstallation gesichert werden müssen.
User rasper hat admin-Rechte. Das Script funktioniert soweit. Aber es werden Fehler ausgegeben, und da ich gerne "sauber" arbeiten würde, möchte ich es nun optimieren.
Zur Erklärung: /nas/verknuepfung/ ist ein Mount zu meinem NAS, welcher bei Start des Pi automatisch ausgeführt wird. Das funktioniert auch, die Daten landen auf dem NAS.
Ich kann mir folgende Fehlermeldung nicht erklären. Könnt Ihr weiterhelfen?
Permission denied (13) verstehe ich nicht. raspe hat selbstverständlich die Berechtigung, auf /home/raspe/* zuzugreifen. Auch besteht Lese- und Schreibzugriff auf das gemountete NAS (eben noch einmal per Terminal sowie Remotedesktopverbindung getestet). Wie gesagt funktioniert das Script eigentlich. Alle Dateien auf meinem NAS sind aktuell und vollständig. Gerade deshalb wundern mich die Fehlermeldungen. Sollte ich statt rsync -avr (hatte ich mir ergoogelt) andere Attribute verwenden?
Beste Grüße
laut meiner Recherche kann man kein vollständiges Backup des Raspberry Pi (auf meinem läuft Raspbian) im laufenden Betrieb anfertigen. Also sodass sich das System komplett selbst beispielsweise auf einem NAS sichert. Ich habe mir nun ein Script gebastelt, welches stattdessen einfach die wichtigsten Dateien auf meinem NAS sichert, sodass ich im Fall eines Crashes meiner SD-Karte das System neu aufspielen müsste, aber dennoch sämtliche Scripts und wichtigen Einstellungen sofort wiederherstellen könnte.
Das Script sieht so aus
#!/bin/bash
# Meine selbst erstellten Scripts und die Einstellungen
rsync -avr /home/rasper/scripts/ /home/rasper/nas_verknuepfung/scripts/
rsync -avr /home/rasper/einstellungen.txt /home/rasper/nas_verknuepfung/einstellungen.txt
# Die per Webserver einsehbaren Dateien
rsync -avr /var/www/ /home/rasper/nas_verknuepfung/var/www/
# xinetd Konfiguration
rsync -avr /etc/xinetd.d /home/rasper/nas_verknuepfung/etc/
# fstab Konfiguration
rsync -avr /etc/fstab /home/rasper/nas_verknuepfung/etc/fstab
# crontabs Konfiguration
sudo rsync -avr /var/spool/cron/crontabs/ /home/rasper/nas_verknuepfung/var/spool/cron/crontabs
# Postfix Konfiguration
rsync -avr /etc/postfix/ /home/rasper/nas_verknuepfung/etc/postfix/
Die Verzeichnisstrukturen sichere ich mit, da ich noch Anfänger bin und in diesem Fall einfacher rekonstruieren kann, in welchen Pfad die entsprechenden Dateien ggf. nach einer Neuinstallation gesichert werden müssen.
User rasper hat admin-Rechte. Das Script funktioniert soweit. Aber es werden Fehler ausgegeben, und da ich gerne "sauber" arbeiten würde, möchte ich es nun optimieren.
Zur Erklärung: /nas/verknuepfung/ ist ein Mount zu meinem NAS, welcher bei Start des Pi automatisch ausgeführt wird. Das funktioniert auch, die Daten landen auf dem NAS.
Ich kann mir folgende Fehlermeldung nicht erklären. Könnt Ihr weiterhelfen?
sh backup.sh
sending incremental file list
./
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/." failed: Permission denied (13)
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/backup.sh" failed: Permission denied (13)
logs/
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/logs" failed: Permission denied (13)
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/logs/mediastat.log" failed: Permission denied (13)
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/logs/test" failed: Permission denied (13)
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/logs/webtrigger.log" failed: Permission denied (13)
sent 194 bytes received 34 bytes 456.00 bytes/sec
total size is 4606 speedup is 20.20
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
sending incremental file list
sent 44 bytes received 12 bytes 112.00 bytes/sec
total size is 1513 speedup is 27.02
sending incremental file list
./
sent 74 bytes received 21 bytes 190.00 bytes/sec
total size is 197 speedup is 2.07
sending incremental file list
xinetd.d/
sent 66 bytes received 19 bytes 170.00 bytes/sec
total size is 265 speedup is 3.12
sending incremental file list
sent 33 bytes received 15 bytes 96.00 bytes/sec
total size is 419 speedup is 8.73
sending incremental file list
./
rsync: chown "/home/raspe/nas_verknuepfung/var/spool/cron/crontabs/." failed: Permission denied (13)
rsync: chgrp "/home/raspe/nas_verknuepfung/var/spool/cron/crontabs/raspe" failed: Permission denied (13)
rsync: chown "/home/raspe/nas_verknuepfung/var/spool/cron/crontabs/root" failed: Permission denied (13)
sent 78 bytes received 21 bytes 198.00 bytes/sec
total size is 1400 speedup is 14.14
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
sending incremental file list
./
sasl/
sent 245 bytes received 43 bytes 192.00 bytes/sec
total size is 74616 speedup is 259.08
sending incremental file list
./
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/." failed: Permission denied (13)
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/backup.sh" failed: Permission denied (13)
logs/
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/logs" failed: Permission denied (13)
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/logs/mediastat.log" failed: Permission denied (13)
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/logs/test" failed: Permission denied (13)
rsync: chgrp "/home/raspe/nas_verknuepfung/scripts/logs/webtrigger.log" failed: Permission denied (13)
sent 194 bytes received 34 bytes 456.00 bytes/sec
total size is 4606 speedup is 20.20
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
sending incremental file list
sent 44 bytes received 12 bytes 112.00 bytes/sec
total size is 1513 speedup is 27.02
sending incremental file list
./
sent 74 bytes received 21 bytes 190.00 bytes/sec
total size is 197 speedup is 2.07
sending incremental file list
xinetd.d/
sent 66 bytes received 19 bytes 170.00 bytes/sec
total size is 265 speedup is 3.12
sending incremental file list
sent 33 bytes received 15 bytes 96.00 bytes/sec
total size is 419 speedup is 8.73
sending incremental file list
./
rsync: chown "/home/raspe/nas_verknuepfung/var/spool/cron/crontabs/." failed: Permission denied (13)
rsync: chgrp "/home/raspe/nas_verknuepfung/var/spool/cron/crontabs/raspe" failed: Permission denied (13)
rsync: chown "/home/raspe/nas_verknuepfung/var/spool/cron/crontabs/root" failed: Permission denied (13)
sent 78 bytes received 21 bytes 198.00 bytes/sec
total size is 1400 speedup is 14.14
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
sending incremental file list
./
sasl/
sent 245 bytes received 43 bytes 192.00 bytes/sec
total size is 74616 speedup is 259.08
Permission denied (13) verstehe ich nicht. raspe hat selbstverständlich die Berechtigung, auf /home/raspe/* zuzugreifen. Auch besteht Lese- und Schreibzugriff auf das gemountete NAS (eben noch einmal per Terminal sowie Remotedesktopverbindung getestet). Wie gesagt funktioniert das Script eigentlich. Alle Dateien auf meinem NAS sind aktuell und vollständig. Gerade deshalb wundern mich die Fehlermeldungen. Sollte ich statt rsync -avr (hatte ich mir ergoogelt) andere Attribute verwenden?
Beste Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 264215
Url: https://administrator.de/contentid/264215
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
1 Kommentar
Also "rsync -avr" ist doppelt gemoppelt; denn der Parameter "-a" ist eine Abkürzung für "-rlptgoD", da kommt also das "-r" schon drin vor. Es kann sich für dich möglicherweise lohnen, anstellt von "-avr" "-avz" zu nutzen, dann werden die Dateien komprimiert übertragen.
Mögliche Ursachen für den Fehler sind:
1. das Dateisystem deiner NAS kann einfach Dateiberechtigungen nicht speichern (z.B. FAT),
2. rsync läuft nicht als root,
3. der betreffende Benutzer/ID kommt auf dem Zielsystem nicht vor. (naja)
Übrigens für solche Sachen könntest du auch rsnapshot benutzen, das ist dafür gemacht (http://wiki.ubuntuusers.de/rsnapshot) und kann zwischen mehreren Backups alternieren.
Deine Information ist übrigens falsch, man kann durchaus im laufenden Betrieb von seinem Raspberry PI ein komplettes und konsistentes Backup anfertigen. Dazu muss man allerdings die entsprechende Partition als LVM aufgesetzt haben und dann erstellt man eben genau dafür einen Snapshot, den man nach dem Backup wieder löscht.
Ob das bei der langsamen Zugriffsgeschwindigkeit auf die SD-Karte Sinn macht, weiß ich nicht. Außerdem ist die Einrichtung des Pi mit Booten in LVM nicht ganz trivial je nach Distribution, aber es ist machbar.
Mögliche Ursachen für den Fehler sind:
1. das Dateisystem deiner NAS kann einfach Dateiberechtigungen nicht speichern (z.B. FAT),
2. rsync läuft nicht als root,
3. der betreffende Benutzer/ID kommt auf dem Zielsystem nicht vor. (naja)
Übrigens für solche Sachen könntest du auch rsnapshot benutzen, das ist dafür gemacht (http://wiki.ubuntuusers.de/rsnapshot) und kann zwischen mehreren Backups alternieren.
Deine Information ist übrigens falsch, man kann durchaus im laufenden Betrieb von seinem Raspberry PI ein komplettes und konsistentes Backup anfertigen. Dazu muss man allerdings die entsprechende Partition als LVM aufgesetzt haben und dann erstellt man eben genau dafür einen Snapshot, den man nach dem Backup wieder löscht.
Ob das bei der langsamen Zugriffsgeschwindigkeit auf die SD-Karte Sinn macht, weiß ich nicht. Außerdem ist die Einrichtung des Pi mit Booten in LVM nicht ganz trivial je nach Distribution, aber es ist machbar.