我想同时复制多个文件,以加快我目前使用的过程
scp -r root@xxx.xxx.xx.xx:/var/www/example/example.example.com .
Run Code Online (Sandbox Code Playgroud)
但它一次只复制一个文件.我有一个100 Mbps的光纤,所以我有足够的带宽可以同时真正复制,请帮忙.
SSH 能够进行所谓的“多路复用”——一个(到一台服务器)上的更多连接。这可能是负担得起您想要的东西的一种方式。查找关键字,如“ControlMaster”
第二种方法是使用更多连接,然后在后台发送每个作业:
for file in file1 file2 file3 ; do
scp $file server:/tmp/ &
done
Run Code Online (Sandbox Code Playgroud)
但是,这是对您的问题的回答 - “如何同时复制多个文件”。为了加快速度,您可以使用较弱的加密(rc4 等),并且不要忘记,瓶颈可能是您的硬盘驱动器 - 因为 SCP 不会隐式限制传输速度。
最后一件事是使用 rsync - 在某些情况下,它可能比 scp 快得多......
您可以将后台任务与wait命令一起使用.Wait命令确保在处理下一行之前完成所有后台任务.即,在完成所有三个节点的scp之后将执行echo.
#!/bin/bash
scp -i anuruddha.pem myfile1.tar centos@192.168.30.79:/tmp &
scp -i anuruddha.pem myfile2.tar centos@192.168.30.80:/tmp &
scp -i anuruddha.pem myfile.tar centos@192.168.30.81:/tmp &
wait
echo "SCP completed"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28979 次 |
| 最近记录: |