Hallo Forum,
Ich habe mich gestern mit cron beschäftigt und der hat mich fast zu Verzweiflung gebracht. es geht um ein script das jede Minute die Uhrzeit in eine Datei schreibt und nach einem Neustart die Zeit aus der Datei wieder neu setzt ( der raspberrypi hat keine Hardwareuhr und nach nem Reboot steht die unixzeit wieder auf 0 ( 1.1.1970 0:00 ) mit dem Datum passen aber die VPN Zertifikate nicht mehr und das System kommt nicht ins Netz um sich per ntp und co die aktuelle zeit zu holen, ein paar Minuten zeit Differenz lässt das VPN zu aber keine 44 Jahre )
dazu habe ich mit script geschrieben welche 2 crontab Einträge erstellt :
1 2 | */1 * * * * date +%m%d%H%M%y > /var/log/timestatus @reboot date -s $(cat /var/log/timestatus) |
packe ich die beiden Befehle in Scripte und lasse die per cronjob aufrufen klappt es. Ich tippe auf das Umleitungszeichen > und das dies nur als Umleitung der cronjob Ausgabe genutzt wird anstatt als Teil des Befehls.
versucht habe ich : Alles in "" zu setzen, absolute Pfade angeben /bin/./date .... , > mit \ zu escapen.
Jetzt meine Frage : kann ich Befehle direkt von crontab ausführen lassen, wenn ja wie lautet die genaue Syntax für o.g. Problem ? gibt es einen einfach befehl mit ein cronjob per script angelegt werden kann ?
1 | crontab -l | { cat; echo "@reboot /usr/local/bin/./rpi-set_time"; } | crontab - |
kann ich mir auch recht schwer merken. Bevor ich den Befehlssatz fand hab ich einfach direkt in die /var/spool/cron/crontabs/root Datei geschrieben. Da wird zwar vor gewarnt lt. root crontab header - aber warum ?
PS : hat jmd vllt einmal ein guten Link zu Infos mit der verarbeitung von Sonderzeichen wie '"*/!= usw. Ich Beis mir da regelmäßig die Zähne dran aus sei es mit sed die oder o.g. cronjob Geschichte oder oder oder ...
Für Infos wär ich sehr dankbar.