Hilfe bei Kopier Skript

Jürgen_I

Benutzer
Mitglied seit
27. Feb 2018
Beiträge
115
Punkte für Reaktionen
10
Punkte
18
Hallo zusammen,
ich möchte auf meine Synology ein Verzeichnis in eine anderes per Skript kopieren.

Ich habe was zusammen gebastelt, kriege es aber nicht zum laufen.

Wer kann mich da unterstüztzen, wäre super.


Meine Skript:
rsync -avz --delete /volume1/Daten/Cloud-Dropbox/Mila, Fotos Videos/ /volume1/Daten/Mila


Wird als benutzerdefiniertes Skript gestartet.
/volume1/Daten/admin/Kopiercrypt.sh>>/volume1/Daten/admin/error.txt

Vielen Dank für die Tips.

Gruß
Jürgen
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Meine Skript:
rsync -avz --delete /volume1/Daten/Cloud-Dropbox/Mila, Fotos Videos/ /volume1/Daten/Mila

a.) Was bekommst du als Ausgabe in der error.txt Datei?
b) Wie heißt das Quellverzeichnis von dem Kopiert werden soll? Ist es wirklich so mit Komma und Leerzeichen? "Mila, Fotos Videos/" Wenn Ja, dann musst du die Leerzeichen escapen ---> "Mila,\ Fotos\ Videos/"

--luddi
 

Jürgen_I

Benutzer
Mitglied seit
27. Feb 2018
Beiträge
115
Punkte für Reaktionen
10
Punkte
18
Hallo luddi,

vielen Dank für deine Antwort.

Ich glaube ich fang noch mal von vorne an
Bei dem Name des Volume habe ich ein Leerzeichen drin.
Bildschirmfoto 2020-05-21 um 05.37.30.png

Der Pfad zu der Quelle sieht im File Station wie folgt aus:
/Daten/Cloud- Dropbox/Mila, Fotos Videos

In der Datei error.txt steht:
sending incremental file list

sent 12 bytes received 12 bytes 48.00 bytes/sec
total size is 0 speedup is 0.00
sending incremental file list

Da ich leider mehrere Leerzeichen benutze, klappt das Skript nicht. Kannst Du mir diesen bitte einmal richtig zeigen? Ich habe die Leerzeichen im Volumen in in einem Ordner übersehen. Sorry

Ich möchte nur den Inhalt des Ordners "Mila,\ Fotos\ Videos/" kopieren, er soll nicht synchron.

Vielen Dank
Jürgen
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Bei dem Name des Volume habe ich ein Leerzeichen drin.
Anhang anzeigen 52805

Das Leerzeichen bei "Volume 1" ist nur in DSM für den User so dargestellt. Auf dem System lautet der Pfad tatsächlich "/volume1".



Dann hat das mit dem rsync auch nicht geklappt weil das Quellverzeichnis nicht gefunden werden konnte ohne das Leerzeichen zu escapen.

Um einfach den Inhalt eines Ordners von Quelle nach Ziel zu kopieren funktioniert das lediglich mit dem Copy Befehl "cp".

Rich (BBCode):
cp -r Quelle/* Ziel

In deinem konkreten Fall:

cp -r /volume1/Daten/Cloud- Dropbox/Mila,\ Fotos\ Videos/* /volume1/Daten/Mila

Das Argument "-r" steht dabei für rekursiv und das Slash-Asterisk "/*" am Ende definiert dass nur der Inhalt des Quellverzeichnis kopiert wird und nicht das Quellverzeichnis selbst.


Aber jetzt noch einmal die grundlegende Frage zu meinem Verständnis.
So wie ich das verstehe möchtest du alles von Quelle nach Ziel kopieren. Was soll geschehen wenn sich in der Quelle etwas ändert oder gelöscht wird? Soll dies dann auch im Ziel gelöscht werden?
Wenn das der Fall ist möchtest du das Zielverzeichnis eben doch synchron zum Quellverzeichnis haben. Somit würde ich an dieser Stelle auch eher zum "rsync" Befehl greifen.

--luddi
 
Zuletzt bearbeitet:

Jürgen_I

Benutzer
Mitglied seit
27. Feb 2018
Beiträge
115
Punkte für Reaktionen
10
Punkte
18
Guten Morgen --luddi,

vielen Dank für die Hilfe ich musste noch ein
cp -r /volume1/Daten/Cloud-\ Dropbox/Mila,\ Fotos\ Videos/* /volume1/Daten/Mila
einfügen und es läuft so wie ich es brauche.:)

Noch eine letzte Frage, kopiert er jetzt immer alles oder nur was sich verändert hat?

Wie würde dann der Skript aussehen, wenn er dann nur noch die Dateien kopiert die ich noch gesichert habe?

oder soll ich einfacher nach dem kopieren der Dateien das Verzeichnis löschen.
Wie würde dann der Skript aussehen?

Ich bekommen von meiner Tochter Fotos auf die Dropbox, wenn ich mal Platz brauchen sollte, kann ich diese löschen, da ich ein Fotos ja auf DS habe.

Die Sache mit dem Skript aus der DS zu arbeiten, finde ich super.

Vielen Dank noch mal für die Starthilfe.

Einen schönen Tag

Gruss
Jürgen
 
Zuletzt bearbeitet:

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Noch eine letzte Frage, kopiert er jetzt immer alles oder nur was sich verändert hat?

Der copy Befehl kopiert immer das was man angibt. In deinem Fall mit -r und dem /* wird angegeben den gesamten Inhalt des Quellverzeichnis zu kopieren. Um deine Frage zu beantworten, ja es wird hiermit immer alles kopiert.
Sollte es zu dem Fall kommen dass in dem Quellverzeichnis eine Datei oder ein Ordner gelöscht werden, dann wird beim nächsten copy Befehl wieder nur der vorhandene Inhalt kopiert. D.h. im Zielverzeichnis werden dieses aber nicht gelöscht und bleiben bestehen.

Wie würde dann der Skript aussehen, wenn er dann nur noch die Dateien kopiert die ich noch gesichert habe?

oder soll ich einfacher nach dem kopieren der Dateien das Verzeichnis löschen.
Wie würde dann der Skript aussehen?
Das verstehe ich nicht ganz. Also möchtest du die Dateien eigentlich nicht kopieren sondern verschieben/bewegen?


Gruß
luddi
 

Jürgen_I

Benutzer
Mitglied seit
27. Feb 2018
Beiträge
115
Punkte für Reaktionen
10
Punkte
18
Hallo luddi,
vielen Dank für die Antwort.

Ja verschieben ist glaub ich die beste Lösung. Sorry das ich nicht gleich darauf gekommen bin.

Geht auch verschieben mit einem Skript?

Gruß
Jürgen
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Das geht natürlich auch mit Verschieben ;)

Dazu einfach statt den copy den move Befehl ausführen.

Rich (BBCode):
mv /volume1/Daten/Cloud-Dropbox/Mila,\ Fotos\ Videos/* /volume1/Daten/Mila


--luddi
 

Jürgen_I

Benutzer
Mitglied seit
27. Feb 2018
Beiträge
115
Punkte für Reaktionen
10
Punkte
18
Hallo luddi,
vielen Dank für die Antwort.

Der Script läuft, vielen Dank.

Gruß
Jürgen
 

niklas

Benutzer
Mitglied seit
10. Mrz 2015
Beiträge
224
Punkte für Reaktionen
18
Punkte
24
cp -r /volume1/Daten/Cloud- Dropbox/Mila,\ Fotos\ Videos/* /volume1/Daten/Mila
Hallo Luddi,

Der Beitrag ist zwar schon eine Weile her, ich steh aber auch grad vor so einer Sache.
Ich habe dieses Script hinterlegt, bekomme aber immer eine Fehlermeldung.
Script:
cp -r /volume1/rsyncordner/test_NAS_1/TV/Sicherung/* /volume1/Ablage/Test\ Ordner2

Fehlermeldung:
cp: target '/volume1/Ablage/Test Ordner2'$'\r' is not a directory

Hast du einen Tipp für mich?
Grüße, niklas
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.190
Punkte für Reaktionen
2.816
Punkte
423
Das '\r' in der Fehlermeldung deutet auf die Verwendung eines ungeeigneten Texteditors bei der Erstellung des Scripts hin.
Windows verwendet CRLF (\r\n) am Zeilenende, Linux nur LF (\n). Bei Notepad++ kann man das einstellen.
 

niklas

Benutzer
Mitglied seit
10. Mrz 2015
Beiträge
224
Punkte für Reaktionen
18
Punkte
24
Hallo Benares,
Super, danke..... das wars!!

Grüße, niklas
 


 

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