DSM 6.x und darunter Aufgabe 1 x pro Monat aber immer Sonntag?

Alle DSM Version von DSM 6.x und älter
Status
Für weitere Antworten geschlossen.

ottto

Benutzer
Mitglied seit
27. Apr 2010
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo,
meine Synology hat mir vorgeschlagen eine Aufgabe zur Raid-Bereinigung einzurichten.
Ich würde das gern 1x pro Monat aber immer nur am WE laufen lassen. Ich hab aber dort nur die Möglichkeit ein Datum auszuwählen und dies dann monatlich wiederholen zu lassen.
Vermutlich dann immer am x'ten Tag des Monats.
Wie kann man das einstellen?
Danke.
Gruß.
ottto
 

dany

Benutzer
Mitglied seit
31. Mrz 2008
Beiträge
352
Punkte für Reaktionen
0
Punkte
22
Hallo ottto

Wenn du jeweils den 1. Sonntag des Monats im Cronjob hinterlegen willst, so musst du in der shell den Cronjob erstellen:

Rich (BBCode):
vi /etc/crontab


  • Einen Job definieren der die ersten 7 Tage des Monats gestartet wird (1-7) jeweils um 01:00
  • ["$(date +%u)" = "7"] Frage ab ob der Wochentag ein Sonntag ist (1=Montag bis 7=Sonntag)
  • && lässt den nachfolgende Befehl starten wenn der zuvor erstellt Aufruf "wahr" ist.
  • ggf. output ins Nirvana schicken /dev/null

Rich (BBCode):
00 01 1-7 * * root ["$(date +%u)" = "7"] && /pfad-zum-script/job.sh > /dev/null 2>&1

Nicht vergessen Crondeamon neu starten

Rich (BBCode):
synoservicecfg --restart crond

Gruss Dany
 

galdak

Benutzer
Mitglied seit
06. Okt 2010
Beiträge
107
Punkte für Reaktionen
0
Punkte
22
Ich reaktiviere diesen Post mal, denn der Befehl ist genau das, was ich gesucht habe:
Rich (BBCode):
00 01 1-7 * * root ["$(date +%u)" = "7"] && /pfad-zum-script/job.sh > /dev/null 2>&1

Aber auf meiner DS210j (DSM 5.2) funktioniert das irgendwie nicht.
Wenn ich es in der Konsole teste, erhalte ich immer Fehler:
Rich (BBCode):
/ # if ["$(date +%u)" = "6"]; then echo "true"; else echo "false"; fi
ash: [6: not found
false
/ #
Allerdings bin ich nicht sicher, ob dieser Test via PuTTY überhaupt so funktioniert auf der DS.

Bei meinen Tests mit dem cron habe ich einen Log-Output definiert. Aber das Log wird gar nicht mal erstellt.
Wenn der Cron aber ohne ["$(date +%u)" = "6"]-Bedingung ausgeführt wird, läuft das Script und das Log wird erstellt.

Mhmm, jemand einen Input?
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.310
Punkte für Reaktionen
2.870
Punkte
423
Da muss ein Leerzeichen nach [ und vor ] rein
Code:
if [ "$(date +%u)" = "6" ]; then echo "true"; else echo "false"; fi
 
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