Dateien in Verzeichnis per Skript kopieren lassen

Status
Für weitere Antworten geschlossen.

Andrej1980

Benutzer
Mitglied seit
14. Nov 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo Zusammen,

ich habe eine ds213+ mit DSM 4.2 am laufen und möchte gerne ein mal täglich Dateien von einem Verzeichnis in ein anderes kopieren lassen. Jetzt habe ich gesehen, dass es unter Systemsteuerung einen Aufgabenplaner gibt, der auch ein vorgegebenes Skript täglich ausführen könnte. Leider habe ich nicht die geringste Ahnung wie dieses Skript aussehen müsste damit das Kopieren der Dateien funktioniert.

Kann mir bitte jemand dabei behilflich sein?

Vielen Dank vorab und Grüße,
Andrej
 

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
73
Punkte
88
Du benötigst ein sogenanntes Shell-Skript. Zwei Möglichkeiten: mit putty auf die Konsole und mit vi arbeiten oder einen Windows-Editor nehmen (wichtig: er muss Linux-Format schreiben, die Zeilenenden unterscheiden sich bei Windows und Linux; Notepad++ oder ConText, um nur zwei zu nennen) die Datei erstellen und dann auf die syno kopieren (ich gehe jetzt einfach mal davon aus, dass du Windows-User bist ;) ).

In der Skript-Datei steht eigentlich nur eine Zeile:
Rich (BBCode):
cp -r /volume1/deinQuellverzeichnis/ /volume1/deinZielverzeichnis/

Nehmen wir mal an, sie liegt im Homeverzeichnis des admins, das wäre dann /volume1/homes/admin/deinskript.sh
Im Aufgabenplaner gibst du den Namen für den Job ein und wählst den User aus, unter dessen Kennung der Job laufen soll.
Beim Befehl trägst du ein:
Rich (BBCode):
sh /volume1/homes/admin/deinskript.sh
fertig.
Nachteil beim Kopieren ist übrigens, dass das Dateidatum der Zieldateien geändert wird. Wenn das stören sollte, gibt's Alternativen. Eine davon ist:
Rich (BBCode):
rsync -ar /volume1/deinQuellverzeichnis/ /volume1/deinZielverzeichnis
(dass der letzte "/" fehlt, ist kein Schreibfehler...)

Stefan
 
  • Like
Reaktionen: niklas

Andrej1980

Benutzer
Mitglied seit
14. Nov 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Danke

Hallo Stefan,

Vielen Dank für die ausführliche Erklärung und die Tipps. Ich habe gestern auch noch etwas herum experimentiert, jedoch den Code für das Skript direkt in den Aufgabenplaner eingegeben, was natürlich falsch ist.

Richtig geraten ich bin (war) Windows User, stelle zuhause aber gerade alles auf Mac um. Von daher können ein paar Linux Kenntnisse überhaupt nicht schaden...

Werde es heute Abend testen können und gebe Feedback. Danke schon mal!

Viele Grüße,
Andrej
 

Dan97

Benutzer
Mitglied seit
14. Okt 2008
Beiträge
159
Punkte für Reaktionen
0
Punkte
16
Hallo Stefan

Entschuldigung, dass ich mir einklicke, aber ich habe ein ganz ähnliches Problem, nur dass ich die Dateien nicht innerhalb der gleichen DS verschieben möchte, sondern von der DS107+ auf meine neue DS414.
Kannst Du mir auch hier die Skript-Datei aufzeichnen. Die DS107+ hat die IP 192.168.178.40 und die DS414 die IP 192.168.178.50.
Das geht doch sicher auch? Aber irgendwo muss ja sicher dass Passwort für die Anmeldung rein.

Gruss Dan
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Code:
rsync -a -e ssh /pfad/zum/Verzeichnis/ root@192.168.178.50:/pfad/zum/Backup/
das Problem ist die Anmeldung mit PW, das geht mit rsync nicht automatisch. rsync fragt dich auf der Konsole nach dem Login. Als Alternative kannst du den Zertifikatslogin für SSH erstellen (mehr dazu im Wiki)
 

cyorps

Benutzer
Mitglied seit
05. Nov 2011
Beiträge
441
Punkte für Reaktionen
0
Punkte
0
@Dan97
Hast du dir schon einmal die Datensicherung bzw. den Sync von gemeinsamen Ordnern auf der DSM angeschaut? Dort kannst das auch über eine grafische Oberfläche lösen.
 

Dan97

Benutzer
Mitglied seit
14. Okt 2008
Beiträge
159
Punkte für Reaktionen
0
Punkte
16
Hast du dir schon einmal die Datensicherung bzw. den Sync von gemeinsamen Ordnern auf der DSM angeschaut? Dort kannst das auch über eine grafische Oberfläche lösen.

Ja, so habe ich es jetzt gelöst. Nur der Pfad wird hier ganz übernommen.

Werde auch die Möglichkeit von jahlives probieren. Sonst ist es ja mit der Sicherung kein Problem.
 

Elegance

Benutzer
Mitglied seit
24. Sep 2012
Beiträge
20
Punkte für Reaktionen
0
Punkte
0
Ich würde dann jetzt auch nochmal hijacken - was muss ich in dem script angeben, wenn ich es von einem Verzeichnis eines Windows-Pc´s automatisch auf die Diskstation bringen möchte ?

Auch mit der Ip adresse des Pcs im Netzwerk, also wenn 192.168.178.50 die ip adresse des Windows rechners wäre:

rsync -a -e ssh /pfad/zum/Verzeichnis/ 192.168.178.50:/pfad/zum/Backup/

?
 

Andrej1980

Benutzer
Mitglied seit
14. Nov 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo Stefan,

hab´s eingerichtet und es hat prima funktioniert - vielen Dank!

Grüße,
Andrej
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Das ist ja mal interessant. Funktioniert das auch auf eine DS außerhalb meines Netzwerks via DDNS und FTP? Das wäre ja genial :)
 

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
73
Punkte
88
ja klar müsste das funktionieren.
Da hab ich jetzt allerdings kein Skriptbeispiel parat (nur eins, um per ftp zeitgesteuert Daten abzurufen, also entfernte syno holt bei deiner ab).
Aber mit curl müsste auch ein upload auf eine entfernte syno gehen.
Ungetestet:
Rich (BBCode):
curl -T deinedatei ftp://entferntesyno.dyndnsadresse/deinedatei -u Benutzer:Passwort
mit deinedatei und dem Ziel müsstest du das mit Wildcards (*.*) noch im Detail testen, da bin ich mir nicht sicher, wie die Syntax genau sein muss.

Stefan
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Ok, wie würde das dann aussehen für:

SNYCHRONISIERE Ordner X auf entfernten DS via FTP mit lokalem Ornder Y

? :) Danke !
 

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
73
Punkte
88
also deine syno holt von der entfernten syno die Daten?
Das ist aber kein Sync, sondern nur ein Herunterladen...

Stefan
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Ich habe auf einer anderen SYNO in einem anderen Netzwerk einen Ordner X mit Fotos, der inhaltlich 100% mit dem Ordner Y auf meiner lokalen SYNO übereinstimmen soll. Soll also prüfen welchen Daten fehlen oder überflüssig sind und dementsprechend von X auf Y laden auf Y löschen [falls dort noch alte Daten rumliegen].

Ganz kurz zusammengefasst: X = Y :)
 

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
73
Punkte
88
dann würde ich aber auf die #5 zurückgreifen.
rsync macht das Vergleichen, Löschen und rüberschieben automatisch (fürs Löschen müsste noch ein --delete eingebaut werden).
Bei ftp müsstest du dich selber um das Löschen kümmern..

Also das Beispiel von jahlives, das du auf deiner syno startest jetzt erweitert:

Rich (BBCode):
rsync -a -e --delete ssh /pfad/zum/Verzeichnis/ root@entferntesyno:/pfad/zum/Backup/

Wenn du die Dateien in einem "Gemeinsamen Ordner" hast, könntest du aber auch die Bordmittel des Netwerkbackup nehmen (Synchronisierung Gemeinsamer Ordner)...??

Stefan
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Danke für die Hilfe, aber wie logge ich mich auf der entfernten SYNO mit meinem Passwort ein?! Wo ist das in dem Skript vorgesehen?
 

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
73
Punkte
88
gar nicht ... ;)
das Problem ist die Anmeldung mit PW, das geht mit rsync nicht automatisch. rsync fragt dich auf der Konsole nach dem Login. Als Alternative kannst du den Zertifikatslogin für SSH erstellen (mehr dazu im Wiki)

Wie sieht es denn mit der Netzwerksicherung aus? Wäre das keine Alternative?

Stefan
 

fummupha

Benutzer
Mitglied seit
19. Okt 2013
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Das ist leider keine Option, da es sich nur um bestimmte Unterordner eines gemeinsamen Ordners handelt. Du meinst wenn ich so ein Zertifikat erstelle sollte das ohne jeweilige Autorisierung laufen? Ich möchte das am Ende ja als Cronjob in meinem Aufgabenplaner 2x am Tag einrichten...
 

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
73
Punkte
88
Ja, mit dem Zertifikat müsste es dann gehen.

Stefan
 
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