I am trying to run a string of nohup
commands to get server statistics.
However I get an error of 'No such file or directory'. Note that the 3 nohup
calls are embedded in a script which is executed through a cron
job. And the first nohup
works but the other 2 return an error. Ironically enough, when run on a different server, the script works fine.
Commands
nohup vmpstat -a -n 60 1000 > myvmstats
(works)
nohup mpstat -P ALL 1 1000 > mympstats
(returns: nohup cannot run command mpstat
: no such file or directory)
nohup iostat -t -x 60 1000 >myiostats
(returns: nohup cannot run command iostat
: no such file or directory)
Any idea what's wrong?
The usual problem with scripts that run from the command line and not when run by cron
is 'environment'. There are many questions on SO where this is exemplified, including:
For debugging purposes, add a command/line to the cron-run script that does:
env > /tmp/cron.job
Review whether the PATH there includes what you expect, and in particular, whether it includes the directory (directories) where each of the three programs is installed. And do check that you run the programs you expect from the command line:
which vmpstat mpstat iostat
It is a reasonable guess that the two 'missing' commands are not in a directory on PATH when your script is run by cron
. And cron
gives you a bare minimal environment; it is completely unlike at
in that respect.
See also: