2016-12-07 79 views
0

在我編寫的腳本中,輸出被髮送到日誌文件mySysMonitor.log。我希望此腳本的用戶能夠選擇要發送到日誌文件的日誌級別(調試或信息)。我該怎麼做呢。以下面的腳本爲例。如何選擇日誌級別到bash腳本的輸出

#!/bin/bash 

processKD(){ 
    printf "\nCURRENT PROCESSES \r" 
    ps -eo user,pid,pcpu,pmem,start | sort -rk 3,4 | head -n 11 
    echo "TOTAL NUMBER OF RUNNING PROCESSES: $(ps aux | wc -l)" 
} 

loggedInKD(){ 
    printf "\nUSERS CURRENTLY LOGGED IN\r" 
    echo "Number of users logged in: $(w | head -n 1 | cut -d"," -f 3)" 
    who 
} 
processKd >> mySysMonitor.log 
loggedInKd >> mySysMonitor.log 
+0

調試和信息級別有什麼區別? – Aserre

+0

我沒有看到有關日誌級別的示例腳本中的任何內容。 – Aaron

回答

1

你可以使用類似這樣的東西;

#!/bin/bash 

processKD(){ 
    printf "\nCURRENT PROCESSES \r" 
    ps -eo user,pid,pcpu,pmem,start | sort -rk 3,4 | head -n 11 
    echo "TOTAL NUMBER OF RUNNING PROCESSES: $(ps aux | wc -l)" 
} 

loggedInKD(){ 
    printf "\nUSERS CURRENTLY LOGGED IN\r" 
    echo "Number of users logged in: $(w | head -n 1 | cut -d"," -f 3)" 
    who 
} 



LOG_LEVEL="info" 
#LOG_LEVEL=$1 #with parameter ./script info 

#LOG_LEVEL="debug" 

if [ "$LOG_LEVEL" == "info" ]; then 
loggedInKd >> mySysMonitor.log 
fi 

if [ "$LOG_LEVEL" == "debug" ]; then 
processKd >> mySysMonitor.log 
loggedInKd >> mySysMonitor.log 
fi 
+2

然後用戶將不得不手動編輯腳本來更改日誌級別。你最好使用參數,並相應地設置你的LOG_LEVEL變量 – Aserre

+0

試着運行這個。輸出的日誌級別仍然是僅調試或僅信息。有什麼我失蹤了 –