2012-04-17 216 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

相關問題