einfache Frage:
10 4 * * * rm -rf ~/code/rehlds/build/ && ~/code/rehlds/build.sh --compiler=gcc --jobs=4 > /dev/null 2>&1
Ich habe nachgeschaut und es gibt keinen /build-Ordner, was darauf hinweist, dass build.sh nicht ausgeführt wurde.
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
also hier kann ich sehen, dass es ausgeführt wurde
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)
mein Job wurde ausgeführt, aber nicht kompiliert, die Cronlog-Datei ist leer.
CMD (./code/rehlds/build.sh --compiler=gcc --jobs=4 &> ./cronlog)
Antwort1
wenn du also mit 2 bash session arbeitest, musst du die datei mit nano nicht nur speichern, sondern auch schließen, erst dann wird die crontab hinzugefügt.
beim Ausführen von build.sh muss ich zuerst in dieses Verzeichnis wechseln, sonst tritt der folgende Fehler auf:
$ ./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.
Ich habe das herausgefunden, indem ich diesen Befehl manuell ausgeführt habe
richtiger Befehl:
10 4 * * * cd ./code/rehlds && rm -rf ./build && ./build.sh --compiler=gcc --jobs=4 > /dev/null 2>&1