[server] SSH를 통한 네트워크 재시작

서버 A에서 ssh를 통해 서버 B에 다음 명령을 실행하고 싶습니다.

service network stop
sleep 5
service network start

문제는 네트워크 ‘중지’를 발행했기 때문에 현재 ssh 연결도 손실되기 때문입니다. 따라서 후속 명령을 실행할 수 없습니다 (절전 5 및 서비스 네트워크 시작). (서비스 네트워크 다시 시작)을 사용할 수 없습니다.

누구든지 이것에 대한 해결 방법 / 솔루션이 있습니까?



답변

대화식으로 이것을하고 있다면, 왜 screen세션을 시작하지 않습니까? 다음과 같이 보일 것입니다.

screen

(스크 라이닝 쉘 시작)

service network restart

(SSH 세션 연결이 끊어 지지만 화면 세션에서 네트워크 재시작이 계속됨)

(몇 초 기다립니다)

(다시 시작한 후 호스트로 다시 SSH 연결)

screen -r

(화면에 다시 연결하여 오류 확인)

IMHO, 네트워크 인터페이스를 원격으로 다시 시작하는 것은 항상 무섭습니다. 다시 나타나지 않으면 어떻게됩니까? 문제가 발생하면 호스트에 콘솔이나 다른 수단이 있습니까?


답변

이를 수행 할 수있는 정확한 명령은 Linux 배포판에 따라 다릅니다. 꽤 표준적인 옵션은 네트워킹을 다시 시작하기 위해 향후 5 초 동안 작업을 예약하고 “at”하는 것입니다. 다른 하나는 nohup명령 을 사용하는 것 입니다.

echo "sleep 5; /etc/init.d/networking start" | at now
nohup sh -c 'sleep 5; /etc/init.d/networking start' &

다른 배포판에는 결과 프로그램을 더 이상 쉘과 연관되지 않은 데몬으로 바꾸는 데몬 명령이 있습니다.


답변

이를 수행하는 가장 간단한 방법은 and 연산자를 사용하는 것입니다.

service network stop && sleep 5 && service network start


답변

쉘 스크립트에 넣고 SSH를 통해 실행 해보십시오.


답변

이것을 시도하십시오 (필요한 경우 cron 설치 가능).

$ at now+5min
at> service network stop
at> sleep 5
at> service network start
at> [control-D]

그런 다음 로그 아웃하고 6 분 동안 기다렸다가 다시 로그인하십시오.


답변

이것은 현대 데비안 및 우분투에서 작동하지만 다른 모든 대답은 작동하지 않습니다.

screen
sudo ifdown --exclude=lo -a && sudo ifup --exclude=lo -a

인터페이스를 다시 가져 오는 데 약간의 시간이 걸릴 수 있습니다. 제 경우에는 약 15 초 정도의 시간이 소요됩니다.


답변

screen 또는 tmux 중 하나를 원하는 것처럼 들립니다 . 네트워크 연결이 끊어지면 세션을 보존 할 수 있습니다. 그들은 매우 유용합니다. 거의 모든 터미널 세션은 화면을 통해 이루어집니다.