Я создал примитивный тестовый скрипт только для создания каталога, чтобы увидеть, работает ли 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 I могут ясно видеть, что существуют правила, но папка НЕ создана! Сценарий просто не запускается!
Позже я обнаружил, что проблема может быть с точкой в имени скрипта ... поэтому я сменил имя с 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
Но опять ничего ... Что я делаю неправильно? Это примитивный скрипт, он должен работать без проблем!
EDIT: Спасибо всем ... особенно heemayl и Gauthier: «Попробуйте дать полный путь в вашем скрипте (mkdir /home/root/test/test_folder)». он сделал трюк ... теперь кажется, что скрипт работает ... так что нет относительных dirs ... СПАСИБО LOT