서버에 로그인하고 서버에서 실행 중인 프로세스를 시작 및 중지하는 몇 가지 명령을 실행하기 위한 쉘 스크립트를 작성했기 때문에 아래 코드를 시도했지만 오류가 표시됩니다. 스크립트에 대해 도움을 주세요.
for i in 'cat /tmp/hb` //server name would be saved in /tmp/hb
ssh $i
j=hostname
If $i -ne $j
then
echo "server not logged in"
else echo "Server logged in"
if
$i == $j
sudo /opt/OV/bin/opcagt -status |grep -i ”message agent are not buffering"
elif
sudo /opt/OV/bin/opcagt -stop
sudo /opt/OV/bin/opcagt -start
sudo /opt/OV/bin/opcagt -stop
sudo /opt/OV/bin/opcagt -status |grep -i ”message agent are not buffering
elif
sudo /opt/OV/bin/opcagt -kill
sudo /opt/OV/bin/opcagt -start
sudo /opt/OV/bin/opcagt -status |grep -i ”message agent are not buffering
fi
위 스크립트에서는 오류가 발생합니다.
./heart: syntax error at line 2: `ssh' unexpected
답변1
첫 번째 문제는 a에 의해 반복되는 블록이 주변에 and 블록이 for
있어야 한다는 것입니다.do
done
for f in `cat file`
do
...
done
두 번째 문제는 나머지 루프 본문(문)이 대상 호스트의 세션 내에서 실행 if
되지 않는다는 것입니다. 어떻게든 문을 대상 호스트에 푸시하고 그곳에서 스크립트를 실행해야 합니다.ssh
if