我的 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 時,我必須先 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

相關內容