Dateien in Verzeichnis per Skript kopieren lassen

  • 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.

Andrej1980

Benutzer
Registriert
14. Nov. 2013
Beiträge
4
Reaktionspunkte
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
 
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
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
 
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
 
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)
 
@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.
 
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.
 
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/

?
 
Hallo Stefan,

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

Grüße,
Andrej
 
Das ist ja mal interessant. Funktioniert das auch auf eine DS außerhalb meines Netzwerks via DDNS und FTP? Das wäre ja genial :)
 
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
 
Ok, wie würde das dann aussehen für:

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

? :) Danke !
 
also deine syno holt von der entfernten syno die Daten?
Das ist aber kein Sync, sondern nur ein Herunterladen...

Stefan
 
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 :)
 
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
 
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?
 
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
 
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...
 
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