我们在工作中经常会遇到服务器之间相互传输文件,用的最多的工具就是scp,有点是不需要安装,可以满足我们的基本需求,只需要知道常用的命令即可,常用命令是:
[root@localhost wulaoer]# scp -P 222 root@10.10.10.1:/home/wulaoer/access.log /apps/work/logs/
意思是说使用root用户进入到10.10.10.1机器上,把/home/wulaoer/access.log这个文件传输到执行命令的机器/apps/work/logs/的路径下,如果向外传输只需要调整一下位置,格式方法:
[root@localhost wulaoer]# scp [参数] [源文件或目录] [目标文件或目录]
scp的参数有:
-P 端口号,远程连接的端口号。 -r 递归复制整个目录。 -i: identity_file 【从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh】 -q 不显示传输进度条。 -l limit 限制用户所能使用的带宽,以Kbit/s为单位。 -F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。 -c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。 -v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。 -p 保留原文件的修改时间,访问时间和访问权限。 -C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能) -B 使用批处理模式(传输过程中不询问传输口令或短语)
以上是scp传输常用的参数详解,这里我们只说参数-l限制,在没有举例之前我先创建一个大文件:
[root@localhost wulaoer]# dd if=/dev/zero of=wulaoer.logs bs=1G count=4 4+0 records in 4+0 records out 4294967296 bytes (4.3 GB) copied, 116.568 s, 36.8 MB/s [root@localhost wulaoer]# ll -h wulaoer.logs -rw-r--r--. 1 root root 4.0G Feb 18 14:35 wulaoer.logs
创建一个4G大小的文件,文件名为wulaoer.logs,让这个文件传输到其他机器上,看一下传输效果。
[root@localhost wulaoer]# scp wulaoer.logs root@10.211.55.144:/root The authenticity of host '10.211.55.144 (10.211.55.144)' can't be established. ECDSA key fingerprint is SHA256:HmP+fHegqRjsN+UxTx+0jKpvGpSF8LBVvM5Ike/P3k4. ECDSA key fingerprint is MD5:d9:6e:e4:eb:cd:d4:cf:d8:2c:c1:97:61:62:5a:6d:ac. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.211.55.144' (ECDSA) to the list of known hosts. root@10.211.55.144's password: wulaoer.logs 100% 4096MB 23.6MB/s 02:53
这种数据传输原本没有限制,如果带宽小,会一下撑爆带宽限制其他的流量。这时就需要使用限制了,我们可以根据我们的带宽,选择传输时把传输限制低一点,即传输了数据,又不影响其他的网络请求,但是这个传输时间会很长不过没有办法,条件限制。
[root@localhost wulaoer]# scp -rl 20000 wulaoer.logs root@10.211.55.144:/root root@10.211.55.144's password: wulaoer.logs 23% 957MB 2.5MB/s 21:20 ETA
限制每秒传输20000字节,也就约等于每秒传输2M的数据,在数据传输的过程中,速度也就在2M左右。
以上就是scp的限速方法,没有了看些其他的把。
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏