Linux之間用SSH傳輸文件 一行命令實現


把本機的文件傳到目標:

cd /home/ && tar czv test | ssh root@HostIP -p 22 'tar xz'

解釋:

如你所見,這行命令其實由多個命令組成
首先是cd到目標目錄的父級目錄,然后"&&"表示cd命令執行成功再繼續后面的命令,順帶:"||"表示:若前一個命令執行成功,就不會執行下一條了。
后面是一個tar命令,將test壓縮,但是並不輸出到文件,而是通過管道(那個"|"表示管道),傳給后面的ssh命令
ssh命令連接到目標主機,並執行"tar xz"將數據在另一邊解壓.

從遠程復制文件到本機

ssh root@HostIP 'cd /home && tar cz test' | tar xzv

原理同上

不想輸入密碼?

可以試試使用sshpass

apt安裝:

sudo apt-get install sshpass

或者編譯源碼:

wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz  
tar xvzf sshpass-1.05.tar.gz  
./configure 
make  
sudo make install  

使用方法:

sshpass -p [passwd] ssh -p [port] root@HostIP


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM