1
我正在編寫一些代碼,目前依次SSH到幾個服務器並遠程測試以查看進程是否正在運行。最終目標是讓我在進程沒有運行的情況下收到電子郵件提醒。我有那麼多工作。如果聲明,SSH和執行遠程命令
但是,我還希望在SSH連接失敗時發出警告。麻煩的是,無論我嘗試什麼,我都無法使用我當前的if,the,else代碼。
#!/bin/sh
filename="/root/scripts/sysmon_server_lists.txt"
identity="/root/.ssh/sysmon"
OLDIFS=$IFS
IFS=,
while read -r server searchtxt;
do
if [ ! -z $server ]
then
if [ `ssh -n -q -t -i $identity [email protected]$server "ps -ef | grep $searchtxt | grep -v grep | wc -l"` -gt 0 ]
then
echo "Process is running on $server."
else
echo "Process is not running on $server."
fi
echo "Server is $server"
echo "Searchtext is $searchtxt"
echo " "
echo "-----"
echo " "
fi
done < $filename
IFS=$OLDIFS
echo "Finished"
exit 0
不要在本地測試'ssh'的輸出。在遠程端進行測試,並根據需要以成功或錯誤狀態退出。然後使用該錯誤狀態作爲你的指示器(這也讓你指示ssh失敗)。 –