简单问题:
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
如果您使用 2 个 bash 会话,则您不仅必须使用 nano 保存文件,还必须关闭它,然后才能添加 crontab。
执行 build.sh 时我必须先 cd 进入该目录,否则会出现错误:
$ ./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