Benutzerdefiniertes Skript alle 10 Minuten ausführen

Status
Für weitere Antworten geschlossen.

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Hallo zusammen,

ich habe im Aufgabenplaner meiner DS713+ ein benutzerdefiniertes Skript (rsync) angelegt. Allerdings kann man dieses über die vorhandenen Einstellungsmöglichkeiten nur jede Stunde ausführen. Das Skript müsste bei mir aber alle 10 Minuten laufen. Gibt es die Möglichkeit, dieses irgendwo einzustellen ?

Danke für jeden Tipp
Fraubi
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.885
Punkte für Reaktionen
1.171
Punkte
754
Wenn Du Dich ein wenig mit Linux auskennst, kannst Du per ssh/telnet auf die Konsole Deiner 713+ gehen und Dein Skript in /etc/crontab eintragen. Die cronjobs kann man minütlich steuern.
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
Und ansonsten gibt's dafür auch ein Package, den 'Cronjob Editor'.
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Danke für die Info.

Die Datei /etc/crontab hab ich gefunden, doch mir ist der Aufbau nicht ganz klar. Gibt es dazu irgendwo eine weiterführende Info, was ich dort wie einzutragen hätte ?

Grüße
Fraubi
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
He super, vielen Dank für den Link. Ich hätte nicht so genau gewusst, wonach ich überhaupt hätte suchen sollen ;-)
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Also, ich hab das mal getestet, aber irgendwas mache ich falsch :

Folgende Ausgangssituation :

- es gibt auf meiner DS713+ einen Order EXCEL, dessen Inhalt soll jede Minute mit dem Ordner DROPBOX mittels rsync abgeglichen werden

Das Skript für rsync heisst 'excel.sh' und liegt im Ordner 'skripte'. Der Inhalt des Skriptes sieht wie folgt aus :

rsync -avz --delete /volume1/Excel/ /volume1/Dropbox/"Excel VBA Dateien"

Das Skript selbst läuft wenn ich es im Aufgabenplaner als benutzerdefiniertes Skript eintrage.

In der etc/crontab habe ich folgende Zeile ergänzt

1 * * * * root /volume1/skripte/excel.sh

Das bedeutet aus meiner Sicht, dass der Job 'excel.sh' im Verzeichnis /volume1/skripte jede Minute ausgeführt wird.

Leider passiert da nix. Kann es sein, dass ich der Datei excel.sh noch irgendwelche Berechtigungen für Lesen, Schreiben, Ausführen etc. geben muss ?

Ich stehe irgendwie gerade auf dem Schlauch...................

Gruß und danke für jeden Tipp
Fraubi
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.885
Punkte für Reaktionen
1.171
Punkte
754
Auf jeden Fall muss aus der crontab-Zeile root raus. Probiere es bitte so nochmal. Wenn das nicht reicht, poste hier bitte einmal die Ausgabe von "ls -l /volume1/skripte/excel.sh" (ohne Anführungsstriche).
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Ich hoffe ich hab das jetzt richtig verstanden....

Root habe ich aus der Crontab rausgenommen, dort steht jetzt nur noch

* * * * * sh /volume1/skripte/excel.sh

- Oder hätte ich das Wort Root durch einen * ersetzen müssen ?
- Ist das mit dem * am Anfang ok, wenn die Ausführung jede Minute gewünscht wird ?

Das Ergebnis von ls -l /volume1/skripte/excel.sh ist

DS713> ls -l /volume1/skripte/excel.sh
---x--x--x 1 root root 72 Mar 16 11:46 /volume1/skripte/excel.sh

Wenn ich mich unter Putty als Root anmelde, dann läuft das Skript excel.sh normal durch. Melde ich mich nur als ADMIN mit Putty an, dann geht es nicht.
Muss ich evtl. bestimmte Rechte für die Ausführung des Skriptes excel.sh als normaler User setzen ?

Danke für die Hilfe
Fraubi
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.885
Punkte für Reaktionen
1.171
Punkte
754
* * * * * sh /volume1/skripte/excel.sh

Nee, Du hast "root" nicht 'rausgenommen, sondern durch "sh" ersetzt. An der Stelle wird aber das Skript erwartet, "sh" muss also weg. Statt des ersten Sterns bitte */1 setzen, das steht für jede Minute. Richtig ist deshalb:

*/1 * * * * /volume1/skripte/excel.sh

Dein Skript hat nicht die richtigen Rechte: Bitte gib einmal "chmod 755 /volume1/skripte/excel.sh" in den Shell ein. Dann sollte "ls -l /volume1/skripte/excel.sh" den folgenden Output erzeugen:

-rwxr-xr-x 1 root root 72 Mar 16 11:46 /volume1/skripte/excel.sh
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Ok, nu geht es :) War wohl eine gesunde Mischung aus falschem Eintrag in der crontab und den falschen Rechten der Skriptdatei.

Der letzte Trick war dann noch, dass ich noch unter Putty

/usr/syno/sbin/synoservicectl --restart crond

ausführen musste.


Vielen Dank für die Unterstützung................
Fraubi
 

Thorndike

Benutzer
Mitglied seit
22. Sep 2010
Beiträge
742
Punkte für Reaktionen
4
Punkte
38
Bei einer Minute ist die Angabe nicht notwendig da es die kleinste Einheit ist und als default für das erste * genommen wird.
Bei einem Systemupdate wird die crontab gerne einmal ohne Nachfrage überschrieben. Wenn also alles läuft wie es soll würde ich mir eine Kopie irgendwo ablegen wo der installer nicht dazwischenfunkt.
 

Gundo

Benutzer
Mitglied seit
10. Apr 2014
Beiträge
71
Punkte für Reaktionen
0
Punkte
6
Funktionieren die "cronjobs" auch wenn die HDD´s im Standby sind ?
 

Thorndike

Benutzer
Mitglied seit
22. Sep 2010
Beiträge
742
Punkte für Reaktionen
4
Punkte
38
Ja, aber die Ausführung des Skripts wird die HDD aus dem Standby wecken. Wie es mit dem Deep Sleep steht das einige Synos beherschen weiß ich nicht.
 

Gundo

Benutzer
Mitglied seit
10. Apr 2014
Beiträge
71
Punkte für Reaktionen
0
Punkte
6
Und genau das soll nicht passieren, das die HDD wieder "aufgeweckt" wird.

Ich hab ja erst kürzlich meine DS214 bekommen und bin noch dabei mich zurechtzufinden. Mir scheint es so das für jegliche Funktion der NAS die HDD (´s) laufen müssen weil das Betriebssystem sich komplett dort befindet. Was für ein Nachteil.
Bei den E2-Boxen ist das gottseidank nicht so. Gibt es keine Möglichkeit ein Script oder was auch immer laufen zu lassen/ zu starten wenn die Festplatten schlafen ? Gibt´s ein TMP-Verzeichnis das im RAM liegt, vielleicht ?
 

Thorndike

Benutzer
Mitglied seit
22. Sep 2010
Beiträge
742
Punkte für Reaktionen
4
Punkte
38
Ja das OS ist auf den Platten. Es würde ja nicht reichen das das Skript im RAM liegt, es müssen dann auch alle Ressourcen ins RAM die benutzt werden. Technisch könnte man wohl eine RAMDisk einrichten und die Pfade passend umbiegen, aber da frage ich mich dann, welche DS hat für sowas RAM übrig? Ich vermute einmal diese E2 Boxen haben ihr OS auf einem Flash und benutzen die Platten nur zur Datenablage. Bei Synology würde auch eine SSD nichts nützen da das OS über alle Platten gespiegelt abgelegt wird.
 

Gundo

Benutzer
Mitglied seit
10. Apr 2014
Beiträge
71
Punkte für Reaktionen
0
Punkte
6
Hätte nie gedacht das die NAS keinen Flashspeicher haben, jetzt wird mir so einiges klar.
 

Thorndike

Benutzer
Mitglied seit
22. Sep 2010
Beiträge
742
Punkte für Reaktionen
4
Punkte
38
Hätte nie gedacht das die NAS keinen Flashspeicher haben, jetzt wird mir so einiges klar.

Das ist so nicht vollstdändig richtig, einen Flashspeicher haben die Synology schon. Dort sind aber nur die ganz tiefliegenden Basissachen drin, sonst könnte man nicht das OS übers Netz auf die Platten einspielen.
 
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