2016-06-01 5 views
0

Ich versuche ein Bash-Skript (test.sh) von einem zweiten Bash-Skript zu starten, das als Cronjob (startTest.sh) auf Ubuntu 14.04 läuft. Cron läuft und beide Skripte funktionieren einwandfrei, wenn sie von der Kommandozeile aus aufgerufen werden.Bash-Skript aus Bash-Skript als Cronjob starten

startTest.sh sieht wie folgt aus:

#!/bin/bash 

touch it_works.txt 

Meine crontab Eintrag wie dieser ist

* * * * * /usr/local/bin/startTest.sh 
+1

Danke für die Info. Wäre gut, wenn Sie eine Problembeschreibung auch hinzufügen. – sjsam

+0

Was ist das Problem mit diesem Ansatz? Höchstwahrscheinlich erstellen Sie die Datei in '/'. – fedorqui

Antwort

2

Best Practice sieht im Allgemeinen nicht:

#!bin/bash 
SHELL=/bin/bash 
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/home/username/path/to/script 

bash /home/username/path/to/script/test.sh 

test.sh wie folgt aussieht relative Pfade zu verwenden (außer Sie machen eine explizite cd) in Skripten, die als Cron-Jobs ausgeführt werden.

crond läuft wahrscheinlich nicht von dem Verzeichnis, in dem Sie es erwarten. Je nachdem, unter welchem ​​Benutzer dieser Cron-Job ausgeführt wird, verfügt das Skript nicht über die Berechtigung zum Erstellen des aktuellen Arbeitsverzeichnisses it_works.txt in crond, oder es erstellt die Datei und Sie suchen an der falschen Stelle.

+0

Es gibt auch eine Chance, dass das op vergaß, ein 'chmod + x' zu den Skripten zu machen. – sjsam

+2

@sjsam OP hat gesagt, es funktioniert, wenn manuell ausgeführt, so dass Dateiberechtigungen sind wahrscheinlich nicht das Problem. –

+0

Punkt notiert. :-) Ich habe diesen Teil übersehen. – sjsam