簡単な質問:
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