SSH를 통해 서버에 접속하고 SSH 세션에서 로그아웃한 후에도 계속 업데이트 명령을 실행합니다.

SSH를 통해 서버에 접속하고 SSH 세션에서 로그아웃한 후에도 계속 업데이트 명령을 실행합니다.

뭐, 이런 질문을 많이 봤는데, 거의 대부분 개념을 명확히 하는 이론적인 답이 있지만, 아직 코드로 옮기지는 못해요.

bash 스크립트를 사용하여 달성하고 싶은 것은 루프를 사용하는 것입니다.

  1. ssh파일에 언급된 서버로 (완료)

  2. 각 장치에서 업데이트 및 업그레이드 명령을 실행합니다.

  3. Exit asa 명령이 실행되었지만 해당 명령은 서버에서 계속 실행되어야 합니다.

현재 이 작업을 수행하기 위해 일반 스크립트를 사용하면 모든 시스템을 업데이트할 수 있지만 지속적으로 업데이트할 수 있습니다. 업데이트 및 업그레이드가 완료될 때만 종료되기 ssh때문에 한 번에 하나의 시스템만 업데이트됩니다 . ( 불필요한 조작을 피하기 위해 동작은 화면 ssh으로 지시됩니다 )/dev/null

이 작업을 수행하기 위해 nohup, /tmux 등과 같은 옵션이 있지만 screen...위의 결과를 달성하기 위해 이러한 옵션을 사용하는 방법을 모르겠습니다!

이것을 어떻게 구현할 수 있나요?

답변1

update.sh머신에서 실행될 스크립트를 준비합니다 . screen내부에서 실행해보세요 ssh:

ssh user@host "screen -a -d -m -l -U /usr/local/sbin/update.sh"

이익. 분리된 화면 세션에서 업데이트 스크립트를 실행하며, update.sh가 종료된 후 즉시 종료됩니다.

관련 정보