Ssh

使用 tar/cpio 和 ssh 歸檔到遠端機器?

  • January 16, 2018

我正在用 Ubuntu 租用幾個 VPS,我已經設法填滿了其中一個。在這裡,我有幾個目錄,其中包含很多我想放入存檔的文件。不幸的是,我沒有足夠的空間來創建這樣的檔案(甚至不是 root)。

因此我想知道是否可以使用 tar (首選)或 cpio 在其他 VPS 上創建存檔?我想要壓縮存檔,所以要麼tar使用 j-option (bzip2) 呼叫,要麼將文件傳送bzip2到某個時間點(最好在通過網路發送之前) - 關於如何最好地壓縮文件的任何建議?

最後,兩個VPS都安裝了ssh和sshd,所以我想用它來傳輸文件。

+++

不幸的是,我不是以這種方式使用 tar/cpio 或 ssh 的專家,所​​以對於可以(最好)完成這樣的事情,我有點不知所措。我應該如何使用ssh?像隧道還是管道,像ftp,像scp?我應該如何使用tar?在兩個 VPS 上都tar執行,它們之間有一個 ssh 隧道?在源 VPS 上執行 tar,將結果隧道化並將結果重定向到目標 VPS 上的文件?

那麼我該怎麼做呢?

還有其他更好的方法來做這樣的事情嗎?一些特殊用途的包?使用網路套接字?還有什麼?

管道應該足夠了。只做:

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

(如果您已使用密鑰設置無密碼登錄)

稍後在另一台機器上,您可以使用解壓縮收到的文件tar -xvf path.tar.bz2 -C ./

您可以使用這樣的東西通過 ssh 存檔和複製:

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

在這裡,您正在創建一個 tar.gz 存檔,但不是將其保存到您正在使用的某個文件中**-這是標準輸出。標準輸出-然後通過管道傳輸到 ssh 並從那裡從標準輸出cat ->**並重定向到您在第二台機器上的文件。

評論中的使用者 Arkadiusz Drabczyk 的建議也很好,因為一旦設置好,您就可以使用mv從一台機器移動到另一台機器。如果要使用 sshfs,則必須先安裝它,然後再安裝:

sudo sshfs root@xxx.xxx.xxx.xxx:/ /mnt/droplet

引用自:https://unix.stackexchange.com/questions/225579