Как установить задание cron для запуска сценария оболочки?

Я установил задание cron:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

Основная проблема заключается в том, что во время расписания возникает ошибка: «почта отправлена ​​в / var / spool / mail / lucky». [ 113]

Содержимое myfile.sh:

mkdir jh
cd jh 
44
задан 18 October 2015 в 15:00

2 ответа

Это неправильно для сценария, который задан как задание cron:

mkdir jh
cd jh 

Вы должны указать полный путь, по которому должен быть создан каталог jh. Также по этому пути у вас должно быть разрешение на создание новых файлов / каталогов.

Например, ваш скрипт должен выглядеть следующим образом:

#!/bin/sh

mkdir /home/lucky/jh
cd /home/lucky/jh

Также /usr/bin/sh не является правильным путем для sh. Правильный путь - /bin/sh. Вы можете проверить это командой whereis sh. И даже в этом случае ваша задача cron должна выглядеть так:

20 * * * * /home/lucky/myfile.sh

Не забудьте сделать исполняемый скрипт:

chmod +x /home/lucky/myfile.sh
0
ответ дан 18 October 2015 в 15:00

Путь, в котором создается папка, - /. Это потому, что для crontab требуется полный путь к папке и файлам во всех файлах, которые он выполняет.

Таким образом, путь в myfile.sh должен быть

. mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.sh Эта строка правильная, хотя вы должны проверить путь, чтобы увидеть, существует ли sh в / usr / bin / sh или нет (используйте which sh чтобы увидеть путь, где существует sh; мой был / bin / sh)

Если вы спешите начать писать crontab, у этой ссылки есть довольно хорошие примеры

http: // www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

0
ответ дан 18 October 2015 в 15:00

Другие вопросы по тегам:

Похожие вопросы: