찾다

 >  Q&A  >  본문

centos - 쉘스크립트는 루프에서 코드를 실행하지만 각 실행 후에 종료됩니까?

으아악

host.log의 내용:
192.168.122.1
192.168.122.2
192.168.122.3

머신이 SSH 상호 신뢰로 구성되어 있습니다

이를 실행한 후 한 번에 한 대의 컴퓨터만 종료할 수 있고 스크립트가 종료된다는 사실을 발견했습니다. 후속 머신을 종료하려면 다시 실행해야 합니다. 이유는 무엇입니까? 감사합니다

过去多啦不再A梦过去多啦不再A梦2860일 전909

모든 응답(4)나는 대답할 것이다

  • 淡淡烟草味

    淡淡烟草味2017-04-25 09:03:06

    다음 줄을 작성해 보세요: ssh root@$HOSTNAME "poweroff" < /dev/null

    회신하다
    0
  • 漂亮男人

    漂亮男人2017-04-25 09:03:06

    또는 ssh -n을 쓰세요. 이런 일이 발생하는 이유는 ssh가 나머지 stdin을 읽기 때문입니다.

    그래서 데이터를 읽을 때 while + 리디렉션을 사용하지 않으려고 합니다. 읽고 싶으면 다른 파일 설명자를 사용하여 읽기도 합니다. stdin은 다른 명령으로 쉽게 읽을 수 있습니다.

    회신하다
    0
  • 黄舟

    黄舟2017-04-25 09:03:06

    perl -ne 'system q/ssh/, q/root@/.$_,q/poweroff/'host.log #이것은 작동해야 합니다

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-25 09:03:06

    읽는 동안 去掉$HOSTNAME中的$

    HOSTNAME을 읽는 동안
    하세요
    ssh root@$HOSTNAME "poweroff"
    완료 < 호스트.로그

    회신하다
    0
  • 취소회신하다