다음 명령을 사용하여 파일을 원격 호스트에 복사 scp
한 다음 원격 호스트에 파일을 복사하여 추가된 날짜 스탬프 버전을 생성합니다.
scp myfile.tar.gz [email protected]:/root/myfolder
ssh [email protected] "cd /root/myfolder && cp myfile.tar.gz myfile_2020-06-23.tar.gz"
그런데 추가 원격 복사(대용량 파일의 경우 시간이 다소 소요됨) 없이 한 단계로 이를 달성할 수 있는 방법이 있습니까? 나는 다음과 같은 것을 파이핑 하고 사용할 ssh
때 무엇을 할 수 있을지 생각하고 있습니다.cat - | tee
... | ssh [email protected] "cat - | tee myfile.tar.gz > myfile_2020-06-23.tar.gz"
이 질문을 표현하고 싶은 또 다른 방법은... .tar.gz
파일을 원격 호스트로 어떻게 파이프합니까 ssh
? 입니다. 이렇게 하면 and then 을 사용하는 대신 위의 트릭을 사용하여 두 파일에 동시에 파이프 myfile.tar.gz
하고 쓸 수 있습니다 .ssh
scp
cp
답변1
원격 서버가 일반적인 Unix 명령을 수락한다고 가정하면 다음을 수행할 수 있습니다.
cat myfile.tar.gz | ssh [email protected] \
"cd /root/myfolder && tee myfile.tar.gz > myfile_2020-06-23.tar.gz"
cat
원격 서버에서 실행할 필요가 없습니다. cat
로컬 서버에서 실행하는 것도 꼭 필요한 것은 아닙니다. 다음과 같이 할 수 있습니다.
ssh [email protected] \
"cd /root/myfolder && tee myfile.tar.gz > myfile_2020-06-23.tar.gz" \
< myfile.tar.gz
^^^^^^^^^^^^^^^-- Redirect from the file
필요한 경우 tar
파이프로 연결할 수도 있습니다.ssh
tar czf - myfiles | ssh [email protected] \
"cd /root/myfolder && tee myfile.tar.gz > myfile_2020-06-23.tar.gz"