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
"随笔"类型下的内容为原创,转载请注明来源. http://www.cnblogs.com/DragonStart/