./script & >> log.txt
Ich bekomme eine nette Logdatei, aber wenn ich den gleichen Befehl von cron ausführen lasse, kann man sagen, dass die crontab so aussieht:
* * * * * '/home/user/script &>> /home/user/log.txt'
Die log.txt wird einfach leer sein, ich habe versucht "und" und keine Häkchen, um den Befehl einzuschließen, eine Idee, warum die Streams nicht in die Datei geschrieben werden?
Fügen Sie keine Anführungszeichen für den Befehl in die crontab ein.
Erwägen Sie, ein Umgebungseinstellungsskript auszuführen, das seine eigene Umleitung ausführt, anstatt sich dabei auf cron zu verlassen.
Je weniger sich meiner Erfahrung nach in der crontab-Datei befindet, desto besser. Meine crontab-Dateien bestehen aus den Zeitsteuerelementen sowie einem einfachen absoluten Befehlsnamen (ksh) und dem auszuführenden Befehl:
quelle
/bin/sh
das mit Quotierungen durchaus umgehen kann, aber die OP-Quotes wurden falsch verwendet (ebenfalls war die Umleitung nicht sh- kompatibel). In einigen Versionen von cron können crontab-Dateien angeben, welche Shell die Befehle interpretieren soll, sodass die Funktionen und die Syntax Ihrer bevorzugten Shell möglicherweise direkt in einem crontab-Eintrag verwendet werden können. Allerdings stimme ich zu, dass es ein guter Vorschlag ist, crontab-Einträge einfach zu halten.