человечность 14.04 crontab не запускает простые скрипты

Я создал примитивный сценарий тестирования только, чтобы создать каталог, видеть, работает ли crontab:

#!/bin/bash
mkdir test_folder
exit

сценарий расположен здесь /home/root/test/test.sh

Я сделал этот исполняемый файл сценария с:

sudo chmod u+x test.sh

когда я запускаю скрипт вручную sudo /home/root/test/test.sh "test_folder" создается. Однако, когда я добавляю его к crontab, чем ничего не происходит!

Я открыл crontab с sudo crontab -e и я добавил следующие правила:

00 * * * * /home/root/test/test.sh
10 * * * * /home/root/test/test.sh
20 * * * * /home/root/test/test.sh
30 * * * * /home/root/test/test.sh
40 * * * * /home/root/test/test.sh
50 * * * * /home/root/test/test.sh

когда я проверяю crontab с sudo crontab -l Я могу ясно видеть, что правила там, но папка НЕ создается! Сценарий просто не работает!

Позже я нашел, что проблема может быть с точкой на название сценария..., таким образом, я изменил имя от test.sh кому: test_sh ... сделанный этим исполняемый файл с sudo chmod u+x test_sh, попробованный это вручную, тестовая папка была создана..., чем я добавил к crontab sudo crontab -e :

00 * * * * /home/root/test/test_sh
10 * * * * /home/root/test/test_sh
20 * * * * /home/root/test/test_sh
30 * * * * /home/root/test/test_sh
40 * * * * /home/root/test/test_sh
50 * * * * /home/root/test/test_sh

Но снова ничто... Что я делаю неправильно? Это - примитивный сценарий, он должен работать без проблем! Я забыл относительно чего-то?

Править: Спасибо всем... особенно heemayl и Gauthier: "Попытайтесь дать полный путь в своем сценарии (mkdir /home/root/test/test_folder)." это добилось цели... теперь, кажется, что сценарий работает... так никакие относительные директора... Большое спасибо

1
задан 22 September 2016 в 14:09

1 ответ

Проверить rootкорневой каталог, каталог test_folder создается там, точно /root/test_folder. Обратите внимание, что, Вы вставили сценарий root cron таблица путем выполнения sudo crontab -e таким образом, каталог был бы /root/test_folder.

cron значения по умолчанию к корневому каталогу рабочего пользователя (root в этом случае) прежде, чем выполнить любую задачу, поэтому поскольку у Вас есть относительный путь т.е. только test_folder, каталог будет создан в rootкорневой каталог.

Это также подобно другим случаям, где относительные пути используются в сценарии, и каждый запускает скрипт от другого местоположения; PWD будет всегда обращаться к каталогу от того, где скрипт запускается, не, где сценарий хранится.

Отметьте это, exit в конце избыточно.

1
ответ дан 7 December 2019 в 15:48

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

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