我正在尝试运行一串nohup
命令来获取服务器统计信息。
但是我收到'没有这样的文件或目录'的错误。请注意,3 nohup
次调用嵌入在通过cron
作业执行的脚本中。并且第一个nohup
可以工作,但另外两个返回错误。具有讽刺意味的是,当在不同的服务器上运行时,脚本运行正常。
命令
nohup vmpstat -a -n 60 1000 > myvmstats
(作品)
nohup mpstat -P ALL 1 1000 > mympstats
(返回:nohup无法运行命令mpstat
:没有这样的文件或目录)
nohup iostat -t -x 60 1000 >myiostats
(返回:nohup无法运行命令iostat
:没有此类文件或目录)
知道什么是错的吗?
答案 0 :(得分:1)
从命令行运行而不是由cron
运行的脚本的常见问题是“环境”。关于SO的问题有很多,例如:
出于调试目的,将命令/行添加到执行以下操作的cron-run脚本:
env > /tmp/cron.job
检查PATH是否包含您期望的内容,特别是它是否包含安装三个程序中的每个程序的目录(目录)。并检查您是否从命令行运行所需的程序:
which vmpstat mpstat iostat
可以合理地猜测,当cron
运行脚本时,两个'missing'命令不在PATH目录中。 cron
为您提供了一个极小的环境;在这方面,它与at
完全不同。
另见:
答案 1 :(得分:1)
我认为你应该给出程序的相对/绝对路径
例如:
nohup ./****.sh > /home/user/test.txt