使用 tar/cpio 和 ssh 歸檔到遠端機器?
我正在用 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