неверный ли синтаксис моего crontab?

неверный ли синтаксис моего crontab?

простой вопрос:

10 4 * * * rm -rf ~/code/rehlds/build/ && ~/code/rehlds/build.sh --compiler=gcc --jobs=4 > /dev/null 2>&1

Я проверил, и там нет папки /build, что означает, что build.sh не был выполнен.

crontab -e

10 4 * * * rm -rf ~/code/rehlds/build/ && ~/code/rehlds/build.sh --compiler=gcc --jobs=4 > /dev/null 2>&1

pgrep cron 658 1232359

так что здесь я вижу, что это было запущено sudo grep CRON /var/log/syslog Dec 8 04:10:01 xxxx CRON[1190963]: (xxx) CMD (rm -rf ~/code/rehlds/build/ && ~/code/rehlds/build.sh --compiler=gcc --jobs=4 > /dev/null 2>&1)

моя задача была выполнена, но компиляция не производилась, файл cronlog оказался пустым.

CMD (./code/rehlds/build.sh --compiler=gcc --jobs=4 &> ./cronlog)

решение1

  1. если вы работаете с 2 сессиями bash, вы должны не только сохранить файл с помощью nano, но и закрыть его, только тогда будет добавлен crontab.

  2. при запуске build.sh я должен сначала перейти в этот каталог, иначе возникнет ошибка:

$ ./code/rehlds/build.sh --compiler=gcc --jobs=4 CMake Error: The source directory "/home/cs2" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI. make: *** No targets specified and no makefile found. Stop.

Я обнаружил это, вручную выполнив эту команду

правильная команда:

10 4 * * * cd ./code/rehlds && rm -rf ./build && ./build.sh --compiler=gcc --jobs=4 > /dev/null 2>&1

Связанный контент