Using global environment variables inside a subshell
Lowell Gilbert
freebsd-questions-local at be-well.ilk.org
Wed Oct 1 20:48:37 UTC 2008
Steve Bertrand <steve at ibctech.ca> writes:
> I've fudged together a quick disk space monitor that I will run from
> cron. Running the script works fine from the command line, but when I
> run it from cron, the environment variable is empty.
>
> Can someone point out the err of my ways?:
>
> #!/bin/sh
>
> /bin/df | \
> /usr/bin/awk '{if($5 ~ "%" && $6 !~ "proc") {used=$5} else {used=""}; \
> sub(/%/, "", used); \
> if(used > 95) print $6 " is at " used"% on "ENVIRON["HOSTNAME"]"!"}' | \
> mail -s "Disk usage action required" email at addr.com
The environment under which cron jobs are run is very spare. It's
more or less limited to the variables that are listed in the
crontab(5) manual. You need to get the value into your script another
way. In this case, I would use hostname(1).
--
Lowell Gilbert, embedded/networking software engineer, Boston area
http://be-well.ilk.org/~lowell/
More information about the freebsd-questions
mailing list