하나의 SSH 명령으로 여러 작업 수행

하나의 SSH 명령으로 여러 작업 수행

나에게 명령이 있습니다.

# ssh -t computer.A 'command'

SSH를 통해 컴퓨터에서 원격으로 간단한 명령을 실행하세요.

그 외에도 컴퓨터 A를 통해 컴퓨터 B에서 명령을 실행하고 싶습니다. 내 생각에는 다음과 같습니다.

# ssh -t computer.A 'ssh -t computer.B 'shutdown -p now' shutdown -p now'

이 명령은 컴퓨터 B를 먼저 종료한 다음 컴퓨터 A를 종료하지만 컴퓨터 B만 종료하고 컴퓨터 A를 종료하는 명령은 무시합니다.

무엇이 잘못되었나요?

답변1

따옴표를 이스케이프 처리하고 이 두 명령을 서로 분리해야 합니다.

ssh -t computer.A 'ssh -t computer.B \\'shutdown -p now\\'; shutdown -p now'

첫 번째 종료가 성공한 경우에만 컴퓨터의 두 번째 종료를 실행하려면 ;로 바꾸십시오 &&.

다음과 같이 대체 참조를 사용할 수도 있습니다.

ssh -t computer.A 'ssh -t computer.B "shutdown -p now"; shutdown -p now'

답변2

컴퓨터 A에 있다고 상상해 보세요. B 컴퓨터를 종료하려고 합니다. 어떻게 하나요?

당신은 입력,

ssh -t computer.B 'shutdown -p now'

이제 실행하고 싶습니다.저것명령("ssh -t 컴퓨터.B...")당신의컴퓨터. 인용해야 하는데 명령에 이미 두 개의 인용문이 있으므로탈출하다그들을:

ssh -t computer.A 'ssh -t computer.B \'shutdown -p now\''

실제로 두 개의 명령을 실행하려고 하므로 이를 큰 따옴표 안에 추가해야 합니다.

ssh -t computer.A 'ssh -t computer.B \'shutdown -p now\'; shutdown -p now'

네가 원한다면반복외부에서 컴퓨터에 연결하면 헹구고 반복하십시오.

  • 첫 번째 단계, 모든 따옴표를 이스케이프 처리하세요.그리고 모든 슬래시, 그래서 \되고 .\\​ 이는 다음과 같은 의미 가 됩니다 .'\'\'\\\'

    ssh -t computer.A \'ssh -t computer.B \\\'shutdown -p now\\\'; shutdown -p now\'
    
  • 2단계: 따옴표로 묶고 shutdown 명령을 추가하고 그 앞에 ssh 명령을 추가합니다.

    ssh -t mycomputer 'ssh -t computer.A \'ssh -t computer.B \\\'shutdown -p now\\\'; shutdown -p now\'; shutdown -p now'
    

관련 정보