Re: Mehrere Crontabs
Verfasst: Donnerstag 23. Oktober 2014, 10:25
@skorpionius: Crontab-Dateien die man in ``/etc/cron.d/`` ablegt kann man nennen wie man möchte, ansonsten heisst die globale ``/etc/crontab``. Und wie die vom Benutzer braucht Dich nicht zu kümmern denn die bearbeitet man nicht direkt sondern nur über den ``crontab``-Befehl.
Du hast das Skript hier abgetippt? Warum nicht kopiert? Das wäre weniger fehleranfällig und vor allem auch einfacher/schneller.
Wie schon gesagt kann der ``crond`` seine Aktivitäten loggen. Ob das auf Deinem Raspi konfiguriert ist und falls ja wohin der loggt musst Du halt schauen. Auf meinem Laptop landet das beispielsweise in ``/var/log/syslog``. Der Start vom Daemon sieht da zum Beispiel so aus:
Wenn Du spezifischere Informationen aus Deinen Skripten wissen möchtest dann könntest Du das ausgeben lassen und in der Crontab dann die Ausgabe in eine Datei umleiten. Am besten auch die Fehlerausgabe mit umleiten, damit keine Informationen verloren gehen.
Mit ausrechnen meinte ich *im Skript*. Also zum Beispiel eine Konstante definieren die eine Stunde als Sekunden enthält und die dann an der entsprechenden Stelle mit 11 multiplizieren.
Alles völlig ungetestet:
Und in der Crontab dann zum Ausführen und Umleiten der Ausgabe(n):
Du hast das Skript hier abgetippt? Warum nicht kopiert? Das wäre weniger fehleranfällig und vor allem auch einfacher/schneller.
Wie schon gesagt kann der ``crond`` seine Aktivitäten loggen. Ob das auf Deinem Raspi konfiguriert ist und falls ja wohin der loggt musst Du halt schauen. Auf meinem Laptop landet das beispielsweise in ``/var/log/syslog``. Der Start vom Daemon sieht da zum Beispiel so aus:
Code: Alles auswählen
Oct 23 10:21:01 god cron[1238]: (CRON) STARTUP (fork ok)
Mit ausrechnen meinte ich *im Skript*. Also zum Beispiel eine Konstante definieren die eine Stunde als Sekunden enthält und die dann an der entsprechenden Stelle mit 11 multiplizieren.
Alles völlig ungetestet:
Code: Alles auswählen
#!/bin/bash
readonly SCRIPT_NAME=$(basename "$0")
readonly SCRIPT_PID=$$
readonly HOUR=$((60 * 60)) # One hour in seconds.
readonly SOME_PIN=23
log() {
local message=$1
echo "$(date '+%Y-%m-%d %H:%M:%S') $SCRIPT_NAME[$SCRIPT_PID] $message"
}
main() {
local sleep_hours=11
log "start and switch pin $SOME_PIN"
gpio export "$SOME_PIN" out
sleep 1
gpio -g write "$SOME_PIN" 1
log "sleep $sleep_hours hours"
sleep $(($sleep_hours * $HOUR))
log "switch pin $SOME_PIN"
gpio -g write "$SOME_PIN" 0
sleep 1
gpio export "$SOME_PIN" in
log 'end'
}
main
Code: Alles auswählen
* * * * * … /home/pi/scripts/parrot.sh 2>&1 >> /var/log/parrot.log