一行命令实现 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

下面关于SSH相关的文章您也可能喜欢,不妨参考下:

猜你喜欢

转载自www.linuxidc.com/Linux/2017-11/148703.htm