2016-06-01 1 views
0

Я пытаюсь запустить скрипт bash (test.sh) из второго скрипта bash, который работает как cronjob (startTest.sh) на Ubuntu 14.04. Cron работает, и оба сценария отлично работают, если вызывается из командной строки.Начать скрипт bash из сценария bash как cronjob

startTest.sh выглядит следующим образом:

#!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 выглядит следующим образом:

#!/bin/bash 

touch it_works.txt 

Моя запись кронтаб выглядит следующим образом

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

Спасибо за информацию. Было бы неплохо, если бы вы добавили описание проблемы тоже. – sjsam

+0

В чем проблема с этим подходом? Скорее всего, вы создаете файл в '/'. – fedorqui

ответ

2

Лучшая практика, как правило, не использовать относительные пути (если вы не делаете явный cd) в сценариях, выполняемых как задания cron.

crond, вероятно, не работает из любой директории, которую вы ожидаете. В зависимости от того, какой пользователь выполняет это задание cron, сценарий либо не имеет разрешения на создание it_works.txt в текущем рабочем каталоге crond, либо создает файл, и вы ищете не то место.

+0

Также есть шанс, что op забыл сделать «chmod + x» для скриптов. – sjsam

+2

@sjsam OP действительно сказал, что он работает при запуске вручную, поэтому права на файлы, вероятно, не являются проблемой. –

+0

Пункт отметил. :-) Я забыл эту часть. – sjsam