-rw-r--r--. 1 myusername developers 169 May 17 09:01 build.sh
Почему я могу выполнить сценарий build.sh из командной строки, если у него нет прав на выполнение, но когда crontab пытается его выполнить, он терпит неудачу?
Вы не можете выполнить это из командной строки, потому что у него нет прав на выполнение.
Что вы можете сделать, так это загрузить его из командной строки,
. ./build.sh
что заставляет текущую оболочку выполнять команды в файле, как если бы они вводились в командной строке.
Вы не можете сделать это из cron, поэтому вам нужно дать скрипту разрешения на выполнение (chmod 744 build.sh
).
Вы также можете «запускать» сценарии, запустив оболочку и передав ей сценарий, например,
sh build.sh
Это потому, что вы выполняете sh
(который имеет разрешение + x), и он читает файл build.sh
и выполнение команд, как если бы они были введены в командной строке, перед выходом.