Debug - Running A Crontab Script Interactively
If your script needs to run in cron, you wouldn't want any output (stdout/stderr) to send to the cron because it will be ended up in your mail box. You may want to consider the below approach to auto set your script to 'debug' mode if you are running in an interactive shell.
If you login to an interactive shell, tty
command will give you a pseudo terminal. Whereas if you run tty
in a at/cron environment, you will get a "not a tty".
$tty /dev/pts/3 $at now at> tty > somefile at> <EOT> job 20 at 2009-01-22 21:37 $cat somefile not a tty
Now we can take advantage of tty
so that when you run your cron job in an interactive shell, you are actually telling it to run in a 'debug' mode.
_debug_=1 if [ "`tty`" = "not a tty" ]; then _debug_=0 fi debug() { if [ $_debug_ = 1 ]; then if [ "$1" = "-x" ]; then shift $* else echo $* fi fi } debug This is a comment debug -x uname -a
Useful ?
Labels: shell script
0 Comments:
Post a Comment
<< Home