21x9.org | System Administration | Home Automation | Smart Home
08.02.2013

cron: runas_cron.sh

Eigentlich ist es unproblematisch Befehle zu testen, die als Cronjob ausgeführt werden, da diese einfach wie im Cronjob ausgeführt werden können. Da aber der Cronjob in einem eigenen Environment läuft kann es in Ausnahmefällen doch zu Abweichungen kommen. Dies kann man wie folgt umgehen.

Zunächst muss man wissen welche Environment-Variablen für den Cronjob gesetzt sind. Hierzu erstellt man temporär folgenden Cronjob über crontab -e:

* * * * * /usr/bin/env > /tmp/cron-env

Außerdem benötigt man folgendes Bash-Script:

# run-as-cron.sh

#!/bin/bash
/usr/bin/env -i $(cat /tmp/cron-env) "$@"

Nachdem die Datei /tmp/cron-env angelegt wurde kann der entsprechende Cronjob entfernt und das Script run-as-cron.sh gestartet werden. Als Parameter gibt man den Befehl an, den man testen möchte. env stellt dann das in /tmp/cron-env gespeicherte Environment her.

Tags: imported

Tags

imported

Feeds

Atom 1.0 RSS JSON
  • Datenschutz
  • Impressum
  • Archiv