Neuer Cronjob wird nicht ausgeführt

Status
Für weitere Antworten geschlossen.

aptget

Benutzer
Mitglied seit
08. Jan 2016
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Hi Leute,

hab mich mit root per SSH auf die DS215j (DSM 5+) eingeloggt und hab ein minütlichen cronjob erstellt:

nano /etc/crontab
PHP:
#minute hour    mday    month   wday    who     command
*       *       *       *       *       root    /root/cronjob/create_dir

nano ~/cronjob/create_dir
PHP:
#!/bin/bash
mkdir -p ~/foo/bar/

chmod 775 ~/cronjob/create_dir

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

Skript wird nicht ausgeführt, es wird kein ordner "~/foo/bar" erstellt. :confused:

Hat jemand eine Idee woran es liegen könnte?
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.179
Punkte für Reaktionen
928
Punkte
424
Funktioniert es mit absoluten Pfadangaben, also /root/foo/bar/ ?
 

dil88

Benutzer
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
31.042
Punkte für Reaktionen
2.538
Punkte
829
/bin/bash gibts normalerweise nicht, benutze bitte /bin/sh. Und: Adressiere den Ordner einmal absolut und nicht nach homedir. Insgesamt also besser so:

Rich (BBCode):
#!/bin/sh
mkdir -p /root/foo/bar/
 

aptget

Benutzer
Mitglied seit
08. Jan 2016
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Tatsächlich, seh grad per "echo $SHELL" das die diskstation ash statt bash verwendet, tilde für homedir ist kein Problem, shebang mit /bin/sh und das skript läuft.

Thx
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.899
Punkte für Reaktionen
1.885
Punkte
314
FYI: Die BASH-Shell ist seit der DSM 6 (Beta) aber mit an Bord. Einfach mal, um es im Hinterkopf zu haben.

Tommes
 

dil88

Benutzer
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
31.042
Punkte für Reaktionen
2.538
Punkte
829
Wenn man keine bash-Spezifika benötigt, halte ich es für zweckmäßig, mit /bin/sh zu arbeiten. Das macht die Skripte sehr portabel.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.899
Punkte für Reaktionen
1.885
Punkte
314
Jepp, da kann ich ein Lied von singen. Hab das ja grade erst selber durchlebt mit meinem rsync-Script welches zwar unter DSM 6 lief, unter DSM 5 jedoch nicht. Schuld daran waren u.a. die unterschiedlichen Schreibweisen bzw. Möglichkeiten von ash (sh) und bash. Mit der bash kann man halt wesentlich effizienter und eleganter arbeiten als mit der ash... was jedoch der Kompatibilität zum Opfer fällt.

Tommes
 
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