Cloud Station Daten von Share auf USB kopieren

Status
Für weitere Antworten geschlossen.

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
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.
 

Shawn26

Benutzer
Mitglied seit
21. Jan 2012
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
@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:

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
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.
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.889
Punkte für Reaktionen
1.172
Punkte
754
Du solltest sowohl für which als auch find als root-User angemeldet sein (sudo -i).
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.150
Punkte für Reaktionen
1.115
Punkte
314
Außerdem muss der rsync-Dienst im DSM unter Hauptmenü-> Systemsteuerung -> Dateidienste im Reiter - rsync - aktiviert sein.
 

Shawn26

Benutzer
Mitglied seit
21. Jan 2012
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
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
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.150
Punkte für Reaktionen
1.115
Punkte
314
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 !
 

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
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.
 

Shawn26

Benutzer
Mitglied seit
21. Jan 2012
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
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
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.020
Punkte für Reaktionen
273
Punkte
393
Hallo,
/volume1 mit kleinem v.

Gruß Götz
 

Shawn26

Benutzer
Mitglied seit
21. Jan 2012
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
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
 

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
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:

Shawn26

Benutzer
Mitglied seit
21. Jan 2012
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
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/
 

braindrain

Benutzer
Mitglied seit
01. Apr 2015
Beiträge
43
Punkte für Reaktionen
0
Punkte
6
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 :)
 

Shawn26

Benutzer
Mitglied seit
21. Jan 2012
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
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.
 

braindrain

Benutzer
Mitglied seit
01. Apr 2015
Beiträge
43
Punkte für Reaktionen
0
Punkte
6
Ja, jeder hat eine andere Vorstellung. Meine Frau würde in meiner Abwesenheit einfach keine Updates machen.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.150
Punkte für Reaktionen
1.115
Punkte
314
@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
 

braindrain

Benutzer
Mitglied seit
01. Apr 2015
Beiträge
43
Punkte für Reaktionen
0
Punkte
6
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.
 

Shawn26

Benutzer
Mitglied seit
21. Jan 2012
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
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
 

Shawn26

Benutzer
Mitglied seit
21. Jan 2012
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
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