¿Mi sintaxis de crontab no es válida?

¿Mi sintaxis de crontab no es válida?

Pregunta simple:

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

Verifiqué que no hay una carpeta /build, lo que indica que build.sh no se ejecutó.

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

Entonces aquí puedo ver que se ejecutó. 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)

mi trabajo se ejecutó, pero no se compiló, ese archivo cronlog está vacío.

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

Respuesta1

  1. si trabajas con 2 sesiones bash, no solo debes guardar el archivo con nano, sino cerrarlo, solo entonces se agrega el crontab.

  2. al ejecutar build.sh, primero debo ingresar a ese directorio; de lo contrario, se producirá un error:

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

Lo descubrí ejecutando manualmente este comando

comando correcto:

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

información relacionada