2017-04-19 4 views
0

スクリプトにif条件を追加する必要があります。この状態では、スクリプトがリモートマシン上で実行され、そのスクリプトの出力に希望のパターン/テキストが含まれている場合、conditionはtrue、そうでない場合はfalseです。より良い結果を得るための条件を改善するには?

スクリップは以下の通りです:

ssh [email protected] "cd /net/dell425srv/dell425srv2/apps/;./check_status_splunkforwarder2.sh"

スクリプトを実行した後出力:

のbash $ sshのautoengine @ dell425srv「CD /ネット/ dell425srv/dell425srv2/apps/ ; ./check_status_splunkforwarder2.sh "splunkdが実行されています(PID:537)。 Splunkヘルパーが実行されている(PID:538)

条件が真であれば、「splunkdは実行中です」、そうでない場合は「splunkdが実行されていません」と表示されます。

答えて

0

あなたはこのように、直接grepのリターンコードを使用することができます。

return_code=0 
output=$(remote_command) || return_code=$? 

if 
    ((return_code)) 
then 
    echo "Remote command failed" 
elif 
    grep -q "splunkd is running" <<<"$output" 
then 
    echo "splunkd is running" 
else 
    echo "splunkd is not running" 
fi 

# Remote command in function (for readability only) 
remote_command() 
{ 
ssh [email protected] "cd /net/dell425srv/dell425srv2/apps/;./check_status_splunkforwarder2.sh" 
} 

if 
    remote_command | grep -q "splunkd is running" 
then 
    echo "splunkd is running" 
else 
    echo "splunkd is not running" 
fi 

あなたが失敗したリモートコマンドの実行と失敗したgrep区別コードを持つことができます

関連する問題