1.1

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
posted @   asml  阅读(2229)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
@.@
点击右上角即可分享
微信分享提示