您的位置:首页 > 运维架构 > Linux

Linux之间用SSH传输文件 一行命令实现

2017-11-06 02:42 555 查看

把本机的文件传到目标:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: