2012-04-17 48 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はエイリアスですか?自分でコマンドを実行できますか? –

+0

これはcronの下で実行される問題に走っています。 cronで実行したときにPATHに 'missing'コマンドがありますか? –

+0

私は自分でコマンドを実行できます。私は基本的に同じ設定で2つの異なるサーバー上で同じスクリプトを持っています。 私はスクリプトを起動するためにcronを使用します。 実際には、私はスクリプトを単独で実行しようとしましたが、動作しています。 それはcronの中で動くことと関係があるのだろうかと思う> それは他のサーバとほとんど同じだが、cron内で動く – Switch

答えて

1

コマンドラインから実行され、cronで実行されていないスクリプトの通常の問題は「環境」です。

デバッグのために、cronのにコマンド/行を追加します含め、これが例示されているように多くの質問があり、 -runスクリプトは、以下を行います。

env > /tmp/cron.job 

PATHに期待する内容が含まれているかどうか、特に3つのプログラムのそれぞれがインストールされているディレクトリ(ディレクトリ)が含まれているかどうかを確認します。そして、あなたは、コマンドラインから期待しているプログラムを実行していることを確認します:

which vmpstat mpstat iostat 

それはあなたのスクリプトがcronによって実行されたときに2つの「行方不明」のコマンドがPATH上のディレクトリに存在しないという合理的な推測です。そしてcronはあなたに最小限の環境を与えます。その意味ではatとはまったく異なります。

も参照してください:

0

私はあなたがあなたの相対/絶対パスを与えるべきだと思う例えば

をプログラム:

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

関連する問題