Log vanuit script: Difference between revisions

From Webhuis wiki
Jump to navigation Jump to search
No edit summary
Line 5: Line 5:
<pre>
<pre>
#!/bin/bash
#!/bin/bash
export script_name="test-logger"
export script_name="naam-van-het-script"
. /usr/local/bin/logging.sh ${script_name}
. /usr/local/bin/logging.sh ${script_name}
</pre>
</pre>
Line 23: Line 23:
De uitvoer bevat een geprovoceerde foutmelding - rm van een niet bestaand bestand - en een uitvoermelding.
De uitvoer bevat een geprovoceerde foutmelding - rm van een niet bestaand bestand - en een uitvoermelding.
<pre>
<pre>
Feb 8 21:33:45 zarafa test-logger-err[18573]: rm: cannot remove `/var/aap/noot/mies': No such file or directory
Feb 8 21:33:45 uwork-server naam-van-het-script-err[18573]: rm: cannot remove `/var/aap/noot/mies': No such file or directory
Feb 8 21:33:45 zarafa test-logger-out[18573]: /usr/local/bin
Feb 8 21:33:45 uwork-server naam-van-het-script-out[18573]: /usr/local/bin
</pre>
</pre>

Revision as of 20:51, 8 February 2010

Uitgebreid loggen vanuit script

Binnen Uwork zijn vele scripts in gebruik die allerdaagse taken uitvoeren. Logging vanuit scripts zorgt ervoor dat het verloop van het proces in die scripts in de syslog en daarmee eveneens in de log van de centrale syslog-ng server terecht komt.

Voeg in de eerste van het script met logging toe:

#!/bin/bash
export script_name="naam-van-het-script"
. /usr/local/bin/logging.sh ${script_name}

logging.sh

#!/bin/bash
LOG_FACILITY="local7.notice"
LOG_TOPIC=${script_name}
LOG_TOPIC_OUT="$LOG_TOPIC-out[$$]"
LOG_TOPIC_ERR="$LOG_TOPIC-err[$$]"

exec 3>&1 > >(tee -a /dev/fd/3 | logger -p "$LOG_FACILITY" -t "$LOG_TOPIC_OUT" )
exec 2> >(logger -p "$LOG_FACILITY" -t "$LOG_TOPIC_ERR" )

Uitvoer in de log

De uitvoer bevat een geprovoceerde foutmelding - rm van een niet bestaand bestand - en een uitvoermelding.

Feb  8 21:33:45 uwork-server naam-van-het-script-err[18573]: rm: cannot remove `/var/aap/noot/mies': No such file or directory
Feb  8 21:33:45 uwork-server naam-van-het-script-out[18573]: /usr/local/bin