tar/cpio 및 ssh를 사용하여 원격 시스템에 보관하시겠습니까?

tar/cpio 및 ssh를 사용하여 원격 시스템에 보관하시겠습니까?

저는 Ubuntu로 여러 VPS를 임대했고 그 중 하나를 성공적으로 채웠습니다. 여기에는 아카이브에 넣고 싶은 많은 파일이 포함된 여러 디렉토리가 있습니다. 불행하게도 그러한 아카이브를 만들 공간이 충분하지 않습니다(루트로도 가능).

그렇다면 tar(선호) 또는 cpio를 사용하여 다른 VPS에서 아카이브를 생성할 수 있는지 궁금합니다. 아카이브를 압축하고 싶으므로 tarj 옵션(bzip2) 호출을 사용하거나 특정 시점에(가급적이면 네트워크를 통해 전송하기 전에) 파일을 파이프로 전송하십시오. bzip2파일을 압축하는 최선의 방법에 대한 제안이 있습니까?

마지막으로 두 VPS 모두 ssh와 sshd가 설치되어 있으므로 이를 사용하여 파일을 전송하고 싶습니다.

+++

불행하게도 저는 이런 방식으로 tar/cpio 또는 ssh를 사용하는 전문가가 아니기 때문에 이와 같은 작업을 어떻게 (최선으로) 수행할 수 있는지에 대해서는 조금 이해가 되지 않습니다. 어떻게 사용해야 하나요 ssh? 터널이나 파이프처럼, FTP처럼, SCP처럼? 어떻게 사용해야 하나요 tar? 두 VPS tar사이에 SSH 터널을 사용하여 실행 중이신가요? 소스 VPS에서 tar를 실행하고 결과를 터널링한 후 결과를 대상 VPS의 파일로 리디렉션하시겠습니까?

그럼 어떻게 해야 하나요?

이와 같은 작업을 수행하는 다른 더 좋은 방법이 있습니까? 특별한 목적의 패키지? 웹 소켓을 사용하시나요? 다른 건 없나요?

답변1

파이프이면 충분합니다. 그냥 해:

tar -cvj /path/to/your/files | ssh remote "cat > file.tar.bz2"

(키를 이용하여 비밀번호 없는 로그인을 설정한 경우)

나중에 다른 컴퓨터에서 다음을 사용하여 수신된 파일의 압축을 풀 수 있습니다.tar -xvf path.tar.bz2 -C ./

답변2

비슷한 방법을 사용하여 SSH를 통해 보관하고 복사할 수 있습니다.

tar zcvf - stuff/ | ssh alex@localhost 'cat - > /tmp/stuff.tar.gz'

여기서는 tar.gz 아카이브를 생성하지만 사용 중인 일부 파일에 저장하지 않습니다.-이것은 표준 출력입니다. 표준 출력-그런 다음 ssh로 파이프하고 거기에서 stdout에서 고양이로 파이프하십시오.고양이->두 번째 컴퓨터의 파일로 리디렉션됩니다.

의견에 있는 사용자 Arkadiusz Drabczyk의 제안도 좋습니다. 일단 설정되면 사용할 수 있기 때문입니다.MV한 컴퓨터에서 다른 컴퓨터로 이동합니다. sshfs를 사용하려면 먼저 SSH를 설치한 후 다음을 설치해야 합니다.

sudo sshfs [email protected]:/ /mnt/droplet

답변3

저는 항상 rsync이런 상황에 사용합니다. 전체 프로세스를 더욱 유연하고 안정적으로 만듭니다. 예를 들어 전체 프로세스를 다시 시작할 수 있으며 중지/실패/중단된 위치에서 계속할 수 있습니다.

관련 정보