it-swarm-ko.tech

ssh를 통해 stdout 리디렉션

나는 달리고 싶다

something > file

ssh를 통해 원격 시스템에 있지만 실행하면

ssh Host something > file

리디렉션은 로컬에서 ssh etc > file로 실행됩니다.

대신 ', '' 또는 dd 또는 파이프 |를 사용하여 시도했지만 작동하지 않습니다. 어떻게 할 수 있습니까?

19
franziskus

시험:

ssh Host 'something > file'

다음은 리디렉션, 파이프 및 따옴표를 처리하는 방법에 대한 인위적인 데모입니다.

ssh Host date -d yesterday \| awk "'{print $1}'" \> 'file" "with\ spaces.out'

파이프 및 리디렉션은 전체 외부 따옴표 집합에 포함되지 않고 이스케이프되므로 한 수준의 따옴표를 이스케이프 할 필요성이 줄어 듭니다. AWK 명령의 작은 따옴표는 그 주위에있는 큰 따옴표로 보호됩니다. 파일 이름도 같은 방식으로 보호 할 수 있지만 여기서는 작은 따옴표가 큰 따옴표와 이스케이프를 보호하는 방법을 보여줍니다.

다음 대신 더 간단합니다.

ssh Host something > file

하다:

ssh Host "something > file"
12
Amala

제안 된 솔루션은 파이프에서도 작동합니다.

ssh Host 'some_command | some_other_command'
3
Mike