SSH 명령의 결과를 파이프하여 로컬에 저장

SSH 명령의 결과를 파이프하여 로컬에 저장

실행하려는 스크립트에 모든 원격 명령의 결과를 콘솔의 STDOUT에 출력하는 다음 명령이 있습니다.

ssh -t my-server1.my-domain.net  << EOF
    ./bin/myApp
    echo "Hello World"
    ls ~/
EOF 

이 출력 결과를 로컬 컴퓨터에 어떻게 저장합니까? 일반 파이프 티를 사용하거나 >예를 들어 스트림을 파일로 리디렉션해 보았습니다 .

ssh -t my-server1.my-domain.net  << EOF
    ./bin/myApp
    echo "Hello World"
    ls ~/
EOF 2&>1 test.txt

또는

ssh -t my-server1.my-domain.net  << EOF
    ./bin/myApp
    echo "Hello World"
    ls ~/
EOF 2&>1 | tee test.txt

원격 시스템에서 명령이 실행되는 것을 보고, 콘솔에 출력하고, 로컬 시스템의 파일에 쓰고 싶습니다.

답변1

이는 ssh 명령 뒤가 아닌 명령과 동일한 줄에 ssh파이프를 연결하여 수행할 수 있습니다 .

STDOUT파이핑 으로 연결하려면 다음을 test.txt사용할 수 있습니다.

ssh -t my-server1.my-domain.net  << EOF | tee test.txt
    ./bin/myApp
    echo "Hello World"
    ls ~/
EOF

에만 출력 test.txt하고 에는 출력하지 않으려면 다음을 STDOUT사용할 수 있습니다.

ssh -t my-server1.my-domain.net  << EOF > test.txt
    ./bin/myApp
    echo "Hello World"
    ls ~/
EOF

관련 정보