crontab 스크립트 실행

crontab 스크립트 실행

통신 끊김 자동 재시작을 수행하려고 하는데 온라인에서 이 스크립트를 찾았습니다(이 작업을 수행하는 사람을 축복합니다). 스크립트는

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

관련 정보