minha sintaxe crontab é inválida?

minha sintaxe crontab é inválida?

questão simples:

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

Verifiquei se não há pasta /build, o que indica que build.sh não foi executado.

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

então aqui posso ver que foi executado 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)

meu trabalho foi executado, mas não foi compilado, o arquivo cronlog está vazio.

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

Responder1

  1. se você trabalha com 2 sessões bash, você não deve apenas salvar o arquivo com o nano, mas fechá-lo, só então o crontab é adicionado.

  2. ao executar o build.sh, devo primeiro entrar nesse diretório, caso contrário, erro:

$ ./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.

Eu descobri isso executando manualmente este comando

comando correto:

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

informação relacionada