Cloud Station Daten von Share auf USB kopieren

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.
Das bedeutet, dass das System rsync nicht findet, es also nicht im $PATH deines Benutzers ist. Vielleicht ist auch gar keins installiert, es gäbe eins z. B. per Optware (--> Forensuche: Optware oder Bootstrap).

Du kannst aber auch eine weniger elegante, da nicht inkrementelle, Lösung aus Bordmittel nutzen: Platt machen und neu anlegen.

Rich (BBCode):
#! /bin/sh
/bin/rm -rf /volumeUSB1/usbshare/vuplus 2>/dev/null
/bin/cp -a /Volume1/Share/automatic_fullbackup/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]/vuplus /volumeUSB1/usbshare/ && echo "Hat geklappt :)" || echo "Hat nicht geklappt :("

Der Stick sollte generell übrigens "Linux-formatiert" (ext2, ext3, ext4; brtfs) sein, damit die Dateirechte stimmen, wenn du dein Backup zurück spielst.
 
@hvkls
Also macht dein "Code" das Gleiche nur ohne rsync und halt ohne inkrementeller Sicherung sondern immer einen vollen Kopiervorgang?

Ist das richtig? Das würde schon reichen.
Kann ich bei Deinem Code auch --dry run nutzen um es zu testen?
 
Zuletzt bearbeitet:
Ich glaube cp hat keinen Testdurchlauf.

Ich verstehe aber auch nicht, warum du auf der DS keinen rsync haben solltest. Such mal per find danach.
 
Du solltest sowohl für which als auch find als root-User angemeldet sein (sudo -i).
 
Außerdem muss der rsync-Dienst im DSM unter Hauptmenü-> Systemsteuerung -> Dateidienste im Reiter - rsync - aktiviert sein.
 
Ok Asche auf mein Haupt. Natürlich habe ich rsync auf der DS nur halt nicht auf der VU wo ich die ganze zeit war. *kopfschütteln*
So bin jetzt auch im Verzeichnis /volume1/share/ wo das copy.sh liegt allerdings wenn ich es versuche zu starten mit "./copy.sh" bekomme ich die Info....

Rich (BBCode):
-sh: ./copy.sh: /bin/sh^M: bad interpreter: No such file or directory

Ich muss dazu sagen das ich obwohl ich als Admin angemeldet bin mit "chmod 0755 copy.sh" die Dateirechte nicht angepaßt bekomme.

Das Script sieht nun so aus.
Rich (BBCode):
#! /bin/sh
rsync --dry-run -av --delete-after /Volume1/Share/automatic_fullbackup/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]/vuplus/ /volumeUSB1/usbshare/vuplus/

Weiterhin vielen Dank für Eure Unterstützung.

Shawn26
 
Dieses ^M hinter /bin/sh^M stellt einen Windows Zeilenumbruch da, den Linux nicht interpretiert. Näher Infos gibt's u.a. *hier* (grade auf die Schnelle gefunden).

Das ist auch der Grund, warum dein Script nicht läuft

Und es heißt...

#!/bin/sh

... und nicht...

#! /bin/sh

... als ohne Leerzeichen hinter dem !
 
Rich (BBCode):
rsync --dry-run -av --delete-after /Volume1/Share/automatic_fullbackup/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]/vuplus/ /volumeUSB1/usbshare/vuplus/

Tu dir selbst einen Gefallen und gib den vollen Pfad zu rsync an, wie beschrieben.
 
Das ist jetzt das Ergebnis!

Rich (BBCode):
admin@xxxxxxx:/volume1/Share$ ./copy.sh
building file list ... rsync: change_dir "/Volume1/Share/automatic_fullbackup/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]/vuplus" failed: No such file or directory (2)
done
created directory /volumeUSB1/usbshare/vuplus

sent 12 bytes  received 12 bytes  48.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1355) [sender=3.0.9]
admin@xxxxxxx:/volume1/Share$

Was mache ich falsch?
D

Das ist das Scrypt.

Rich (BBCode):
#!/bin/sh
rsync --dry-run -av --delete-after /Volume1/Share/automatic_fullbackup/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]/vuplus/ /volumeUSB1/usbshare/vuplus/

Weiterhin vielen Dank für jede Unterstützung.

Shawn26
 
Hallo,
/volume1 mit kleinem v.

Gruß Götz
 
Perfekt im -- dry run hat es ohne Probleme funktioniert.
Beim ersten Echtlauf kam es dann zu Fehlern und mir ist ein Problem aufgefallen.

Das Problem welches mir aufgefallen ist.

In diesem Ordner "Share" befindet sich der Ordner "automatic_fullbackup" und darunter befinden sich dann die Sicherungen mit den Ordner nach Tagesdatum benannt.
In meinem speziellen Fall waren von zwei Tagen die Sicherungen dort drin und er hat versucht die Sicherung vom 28.06.2017 und nicht von 29.06.2017 auf den Stick zu kopieren wobei es dann zu einem Fehler kam.

Hier noch einmal die Struktur
- automatic_fullbackup
--- 20170628_0430
-----vuplus
---20170629_0430
-----vuplus

Er soll natürlich immer nur den Ordner "vuplus" aus dem Überordner mit dem aktuellen Tagesdatum auf den Stick kopieren was in meinem speziellen Fall der 29.06.2017 gewesen wäre. Das scheint noch nicht zu funktionieren.

Und hier kommt noch die Fehlermeldung.

Rich (BBCode):
admin@xxxxxxx:/volume1/Share$ ./copy.sh
building file list ... done
created directory /volumeUSB1/usbshare/vuplus
./
duo2/
duo2/imageversion
duo2/kernel_cfe_auto.bin
duo2/noforce.update
duo2/reboot.update
duo2/root_cfe_auto.bin
duo2/vuplus 3.0.0
rsync: rename "/volumeUSB1/usbshare/vuplus/duo2/.vuplus 3.0.0 .Oh0REH" -> "duo2/vuplus 3.0.0 ": Invalid argument (22)

sent 228224973 bytes  received 132 bytes  3105103.47 bytes/sec
total size is 456393038  speedup is 2.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1355) [sender=3.0.9]
admin@xxxxxxx:/volume1/Share$

Und das sind die Dateien die er kopieren soll....

Rich (BBCode):
imageversion (Größe: 1 kb)
kernel_cfe_auto.bin (Größe: 7.168 kb)
noforce.update (Größe: 1 kb)
reboot.update (Größe: 0 kb)
root_cfe_auto.bin (Größe: 215.680 kb)
VO2QQP~7 (Größe: 0 kb)

Und hier noch das Script wie es jetzt lautet:
Rich (BBCode):
#!/bin/sh
rsync -av --delete-after /volume1/Share/automatic_fullbackup/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]/vuplus/ /volumeUSB1/usbshare/vuplus/

Kann mir jemand sagen was ich machen soll?
Weiterhin vielen Dank für jeden Tip.

Shawn26
 
Wenn du die Anforderungen ungenau spezifizierst, bekommst du auch Antworten, die deine Zielen höchstens zufällig entsprechen können. Und dann änderst du die Anforderungen im laufenden Betrieb – gewiss mit der beste Weg, Zeit und Kosten für Projekte zu maximieren.

Ich rate dazu, nicht "den Ordner von heute", sondern "den neuesten aktuell verfügbaren Ordner" zu nehmen.

Rich (BBCode):
#!/bin/sh
PATH=/bin:/usr/bin

quelle=""
ziel="/volumeUSB1/usbshare"

for folder in /Volume1/Share/automatic_fullbackup/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]/vuplus ; do
  quelle=${folder}
done

[ ! -e ${quelle} ] && echo "Quelle nicht verfügbar" && exit 1
mount | grep -qv ${ziel} && echo "Ziel nicht verfügbar" && exit 1

$( which rsync ) -av --delete-after ${quelle}/ ${ziel}/vuplus/
 
Zuletzt bearbeitet:
Ja sorry. Hatte jetzt auch gesehen das ich nicht deklariert hatte das er immer den neuesten Ordner kopieren soll.
Dachte es wäre verständlich genug wenn ich von Tagesdatum spreche.

Wenn ich das Script ausführe dann bekomme ich als Info "Ziel nicht verfügbar obwohl der USB Stick in die DS eingebunden ist und auch den Ordner "vuplus" hat.
Dachte erst weil er leer war das das Script sich daran stört das der Ordner "vuplus" nicht vorhanden ist wohin dann alles kopiert werden soll.

Was mache ich falsch bzw. woran könnte es liegen.
Vielen Dank weiterhin für jede Unterstützung.

Shawn26

Das Script sieht jetzt so aus (musste die Quelle anpassen weil "/volume1/..." ja mit einem kleinen "v" geschrieben werden muss da er mir sonst immer sagte das die Quelle nicht verfügbar sei.

Rich (BBCode):
#!/bin/sh
PATH=/bin:/usr/bin

quelle=""
ziel="/volumeUSB1/usbshare"

for folder in /volume1/Share/automatic_fullbackup/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]/vuplus ; do
  quelle=${folder}
done

[ ! -e ${quelle} ] && echo "Quelle nicht verfügbar" && exit 1
mount | grep -qv ${ziel} && echo "Ziel nicht verfügbar" && exit 1

$( which rsync ) --dry run -av --delete-after ${quelle}/ ${ziel}/vuplus/
 
Aktuell habe ich es auf jeden Tag eingestellt, weil ich gerade damit anfange. In welchem Zyklus die Sicherung gemacht werden soll bzw. wird darüber mache ich mir Gedanken wenn es grundsätzlich funktioniert.

Schon 34 Beiträge, nur damit etwas grundsätzlich funktioniert, was man nur im äußersten Notfall einmal braucht und was in eben diesem Fall max. 10 Sekunden Aufwand bedeutet (nämlich die letzte funktinierende Sicherung manuell auf den Stick zu kopieren)?

Aber ich lese interessiert mit. Kostenlose online-bash-skripting-Kurse gibt es nicht jeden Tag :-)
 
Ich denke jeder hat andere Vorstellung wie etwas abzulaufen hat. Man sollte aber vorher immer mal nachfragen warum es gemacht wird bevor man urteilt.
Da ich häufiger beruflich unterwegs bin und meine Frau nicht in der Lage ist (da technisch nicht versiert) die letzte Sicherung auf einen Stick zu kopieren möchte ich genau diesen Automatismus.
Denn den Stick von der DS abziehen, in die VU stecken und den Stecker mit gehaltener Powertaste wieder in die Steckdose stecken das kann Sie sehr wohl.

Weiterhin vielen Dank für die Unterstützung.

Shawn26

P.S. Außerdem waren es "nur" 33 Beiträge, da Dein Beitrag "noch" nicht zur Lösung beiträgt.
 
Ja, jeder hat eine andere Vorstellung. Meine Frau würde in meiner Abwesenheit einfach keine Updates machen.
 
@braindrain
Ganz ehrlich... deinen Kommentar hättest du dir auch sparen können, denn du schreibst ja selber...

Aber ich lese interessiert mit. Kostenlose online-bash-skripting-Kurse gibt es nicht jeden Tag :-)

... von daher sei doch froh, das es so viele gute Infos von den Profis hier gibt!

Tommes
 
Ich bin, im Gegensatz zum TO schon der Meinung, dass meine Frage zu Lösung beiträgt. Es gibt ja nicht immer nur die eine, technische Lösung.

Evtl. kann man ja auch einen anderen Ansatz finden. Ich nenne das über den Tellerrand hinaus schauen bzw. die Perspektive ändern.
Man kann das aber natürlich auch negativ als störend interpretieren, wenn man das unbedingt möchte.
 
Jeder hat nun seine Meinung dazu beigetragen und das ist auch gut so, aber bitte lasst uns doch wieder zurück zum Thema kommen.
Danke!

Jemand eine Idee warum er das Ziel nicht findet bzw. was ich machen muss damit es funktioniert?

Sage schon einmal Danke!

Shawn26
 
So ich habe mal folgende Zeile entfernt....

Rich (BBCode):
mount | grep -qv ${ziel} && echo "Ziel nicht verfügbar" && exit 1

Er kopiert nun scheinbar den aktuellsten Ordner aber es kommt noch zu einer Fehlermeldung.
Hier der Log (DRY RUN bringt keine Fehlermeldung).

Rich (BBCode):
admin@xxxxxxx:/volume1/Share$ ./copy_neu.sh
building file list ... done
created directory /volumeUSB1/usbshare/vuplus
./
duo2/
duo2/imageversion
duo2/kernel_cfe_auto.bin
duo2/noforce.update
duo2/reboot.update
duo2/root_cfe_auto.bin
duo2/vuplus 3.0.0

sent 205 bytes  received 36 bytes  160.67 bytes/sec
total size is 228196519  speedup is 946873.52 (DRY RUN)
admin@xxxxxxx:/volume1/Share$ ./copy_neu.sh
building file list ... done
./
duo2/
duo2/imageversion
duo2/kernel_cfe_auto.bin
duo2/noforce.update
duo2/reboot.update
duo2/root_cfe_auto.bin
duo2/vuplus 3.0.0
rsync: rename "/volumeUSB1/usbshare/vuplus/duo2/.vuplus 3.0.0 .f4unRN" -> "duo2/vuplus 3.0.0 ": Invalid argument (22)

sent 228224804 bytes  received 132 bytes  4265886.65 bytes/sec
total size is 228196519  speedup is 1.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1355) [sender=3.0.9]
admin@xxxxxxx:/volume1/Share$

Was mich so wundert ist das es keine Datei mit dem Namen "vuplus 3.0.0" in dem Ordner gibt. Stattdessen gibt es eine Datei
die lautet: "VO2QQP~7". An dieser Datei scheint es zu liegen das die Fehlermeldung erscheint.
Was passiert hier bzw. was mache ich falsch?


Weiterhin vielen Dank für Eure Unterstützung.

Shawn26
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat