2012-04-17 224 views
3

我想运行一个字符串nohup命令来获得服务器统计信息。 但是,我得到一个错误'没有这样的文件或目录'。请注意,3 nohup调用嵌入在通过cron作业执行的脚本中。第一个nohup有效,但另外2个返回错误。具有讽刺意味的是,当运行在不同的服务器上时,脚本工作正常。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

是mpstat还是iostat别名?你可以自己运行命令吗? – 2012-04-17 15:10:01

+0

它遇到了在cron下运行的问题;是由cron运行时PATH上的“缺失”命令? – 2012-04-17 15:15:42

+0

我可以自己运行这些命令。我基本上有两个不同的服务器具有相同的设置相同的脚本。 我使用cron来烧制脚本。 事实上,我只是尝试自行运行脚本,它正在工作。 我想知道它是否与在cron内部运行有关> 虽然它与其他服务器几乎相同,并且在cron内部运行 – Switch 2012-04-17 16:01:27

回答

1

从命令行运行而不是运行于cron的脚本的常见问题是“环境”。有这么多的问题,其中,本例示,其中包括:

出于调试目的,命令/行添加到cron - 运行脚本:

env > /tmp/cron.job 

检查PATH是否包含您期望的内容,特别是它是否包含安装这三个程序中的每一个的目录(目录)。而做检查,你运行你的命令行预计项目:

which vmpstat mpstat iostat 

这是一个合理的猜测,这两个“失踪”当你的脚本由cron运行命令没有在路径的目录。而cron给你一个最基本的环境;在这方面完全不同于at

参见:

0

我想你的程序

例如,你应该给相对/绝对路径:

nohup ./****.sh > /home/user/test.txt

相关问题