把本機的文件傳到目標:
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