8

nohupサーバー統計を取得するために一連のコマンドを実行しようとしています。ただし、 「そのようなファイルまたはディレクトリはありません」というエラーが表示されます。3つの呼び出しは、ジョブnohupを介して実行されるスクリプトに埋め込まれていることに注意してください。cronそして、最初nohupは機能しますが、他の2つはエラーを返します。皮肉なことに、別のサーバーで実行すると、スクリプトは正常に機能します。

  • コマンド

    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:そのようなファイルまたはディレクトリはありません)

何が問題なのか分かりますか?

4

2 に答える 2

3

コマンドラインから実行され、実行時ではないスクリプトの通常の問題cronは、「環境」です。これが例示されているSOには、次のような多くの質問があります。

デバッグの目的で、次のようなコマンド/行をcron-runスクリプトに追加します。

env > /tmp/cron.job

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

which vmpstat mpstat iostat

スクリプトがによって実行される場合、2つの「欠落している」コマンドがPATH上のディレクトリにないことは合理的な推測ですcron。そしてcron、最小限の環境を提供します。その点ではまったく異なりatます。

参照:

于 2012-04-23T14:50:51.877 に答える
3

私はあなたがあなたのプログラムの相対的/絶対的な道を与えるべきだと思います

例えば:

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

于 2013-09-11T05:38:22.140 に答える