
내 가상 머신은 Linux에서 가끔 인터넷 연결이 끊기므로 지속적으로 연결을 유지해야 합니다. 그래서 다음 스크립트를 작성했습니다.
#!/bin/bash
wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -ne 0 ]]; then
service network-manager restart
fi
콘솔에서 이 스크립트를 실행하면 작동하지만 다음과 같은 cron
결과를 얻습니다.
network-manager: unrecognized service
이 작업을 수행하려면 어떻게 해야 합니까? 아니면 어떤 다른 접근 방식이 도움이 될 수 있습니까?
---------------- 해결책 ----------------
cron
콘솔에서는 작동하지만 콘솔에서 실행한 작업 중에는 작동하지 않는 이유를 알려면 다음을 수행하십시오 .
echo $PATH
그러면 다음과 같이 표시됩니다.
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
그래서 스크립트를 다음과 같이 편집합니다.
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -ne 0 ]]; then
service network-manager restart
fi
이제 작동합니다!
답변1
일종의 Linux Mint 유사한 배포판을 사용한다고 가정하면 ...
"서비스" 프로그램이 실행할 "네트워크 관리자" 스크립트를 찾을 수 없는 것 같습니다. /etc/init 또는 /etc/init.d를 보면 무엇이 사용 가능한지 확인할 수 있습니다.
또는 자동 완성 기능이 알려주는지 확인하세요(더 쉬운 IMO). 터미널을 열고 다음을 입력하세요.
service net
그런 다음 여러 번 입력하면 TAB"networkign"과 같은 자동 완성된 이름이 표시되고 다음과 같이 사용할 수 있는 몇 가지 옵션도 표시됩니다.
$ service networking
force-reload reload restart start stop
따라서 다음을 사용해 볼 수 있습니다( sudo
스크립트가 아직 루트가 아닌 경우 필요할 수 있음).
service networking restart
또한 ping
다운로드를 시도하는 대신 Google과 같은 사이트를 매분마다 확인하여 네트워크가 아직 작동하는지 확인할 수도 있습니다.
VM 버그나 이상한 설정이 있는지 확인해 보십시오. 일반적으로 호스트 컴퓨터가 네트워크 연결을 잃지 않는 한 네트워크 연결이 끊어져서는 안 됩니다.