통신 끊김 자동 재시작을 수행하려고 하는데 온라인에서 이 스크립트를 찾았습니다(이 작업을 수행하는 사람을 축복합니다). 스크립트는
ping -c4 www.site.com > /dev/null
if [ $? != 0 ]
then
sudo /sbin/shutdown -r now
fi
따라서 이 스크립트는 제대로 작동합니다. 내가 하고 싶은 것은 동일한 작업을 수행하는 다른 스크립트를 추가하는 것인데, 사이트에 ping을 보내는 대신 서버에 ping을 보낼 수 있도록 다른 스크립트를 추가하고 싶어서 내가 한 것은 동일한 스크립트입니다. 하지만 ping만 변경하면 됩니다. 콘텐츠
ping -c4 192.168.1.5 > /dev/null
if [ $? != 0 ]
then
sudo /sbin/shutdown -r now
fi
/usr/local/bin/
첫 번째 스크립트의 통신 누락 파일 이름은 다음과 같도록 이 스크립트를 저장하고 /usr/local/bin/commsloss.sh
두 번째 스크립트의 파일 이름은 다음과 같습니다./usr/local/bin/serverloss.sh
이 두 줄을 추가했습니다crontab -e
*/5 * * * * /usr/bin/sudo -H /usr/local/bin/commsloss.sh >> /dev/null 2>&1
*/10 * * * * /usr/bin/sudo -H /usr/local/bin/serverloss.sh >> /dev/null 2>&1
그런 다음 서버를 종료하여 다시 시작되는지 확인하려고 시도했지만 작동하지 않았습니다.
어떤 제안이 있으십니까?
이것이 가능한지, 아니면 두 개가 아닌 하나의 스크립트만 가질 수 있도록 이것이 올바른 구문인지 궁금합니다.
ping -c4 www.site.com > /dev/null || ping -c4 192.168.1.5 > /dev/null
답변1
현재 서버 스크립트가 작동하지 않는 이유를 잘 모르겠지만 이렇게 하면 or
연산자를 사용할 수 있습니다.
#!/bin/bash
ping -q -c4 www.site.com > /dev/null
siteup=$?
ping -q -c4 192.168.1.5 > /dev/null
ipup=$?
if [[ $siteup != "0" || $ipup != "0" ]]; then
sudo /sbin/shutdown -r now
else
:
fi