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

  • 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

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

ottto

Benutzer
Registriert
27. Apr. 2010
Beiträge
13
Reaktionspunkte
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
 
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
 
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?
 
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