Сценарий Bash не выполняется из crontab [duplicate]

Вместо основной линии вы должны рассмотреть стек включения LTS

https://wiki.ubuntu.com/Kernel/LTSEnablementStack

Где находится более новый ядро ​​/ графический стек официально, только для выпусков LTS Ubuntu.

В этом случае Precise 12.04.5 имеет ядро ​​Trusty (3.13)

1
задан 6 March 2013 в 14:56

3 ответа

Я вижу одну ошибку в конфигурации вашего crontab. В приведенной ниже конфигурации вы пытаетесь вызвать backup.sh так же, как в командной строке с префиксом sh, который может не работать в cron.

#Automatic MySQL backup
30 3 * * * sh /home/srvlinux01/MySQLBackups/backup.sh
Решение: изменить владельца, как сказано в комментарии , если нужно. Сделайте его исполняемым. chmod a+x <filename> Обновите свой crontab, чтобы отразить это. (вызов файла напрямую, оболочка используется по строке shebang внутри файла)
#Automatic MySQL backup
30 3 * * * /home/srvlinux01/MySQLBackups/backup.sh

Надеюсь, это поможет.

8
ответ дан 25 May 2018 в 00:47
  • 1
    [F1] !! Я забываю разрешить мои разрешения на выполнение сценариев. спасибо за сообщение, @Naha – fusion27 1 November 2014 в 22:03
chmod +x /home/srvlinux01/MySQLBackups/backup.sh             

попытайтесь запустить ваш скрипт с полным путем в командной строке:

/home/srvlinux01/MySQLBackups/backup.sh

, если он не запущен - что-то не так (ошибка пути)

Убедитесь, что это ваш crontab

crontab -e 

no sudo:

sudo crontab -e

является root crontab - и root не может найти ваш скрипт;)

remove «sh» в crontab просто напишите:

30 3 * * * /home/srvlinux01/MySQLBackups/backup.sh
7
ответ дан 25 May 2018 в 00:47

Ты забыл точку. до пути выполнения.

30 3 * * * sh ./home/srvlinux01/MySQLBackups/backup.sh             
              ^
-5
ответ дан 25 May 2018 в 00:47
  • 1
    Привет, ничего не изменилось, ошибка такая же, к сожалению. [F1] – Mateusz Kapusta 6 March 2013 в 14:23
  • 2
    ./ делает путь относительно текущего каталога, что здесь нежелательно, и даже предотвратит запуск сценария, если CWD CROD окажется /. Кроме того, целью ./ перед скриптом или другим исполняемым именем является то, что оно находится в текущем каталоге (вместо поиска PATH). В основном это используется при запуске исполняемого файла в качестве выполняемой команды (например, ./script), иногда необходимой (и часто рекомендуемой), когда «источник» и т. Д. (например, . ./script), но никогда не бывает полезным при передаче его в качестве аргумента в оболочку (т. е. sh script всегда работает так же, как sh ./script). – Eliah Kagan 9 August 2014 в 16:37

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

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