scp命令使用说明

SCP命令详解
本文详细介绍了Linux下SCP命令的使用方法,包括本地到远程、远程到本地及远程到远程的文件传输方式,并探讨了如何通过选择不同的加密算法和启用压缩来提高传输效率。

原文地址:http://happyshome.cn/blog/linux/scp.html

scp是linux常用的命令,它可以方便的进行文件的传输。
利用scp进行文件传输时,通过指定的加密算法还可以提升传输速度。

1. 什么是scp?

scp(Secure Copy)允许不同的主机之间进行文件传输。scp使用ssh进行数据的传输,提供了和ssh相同的身份认证和同一级别的安全策略。

2. 从本地到远程

# 从本地复制单个文件
scp pet_local.txt root@192.168.10.174:/root

# 从本地复制多个文件
scp foo.txt bar.txt your_username@remotehost.edu:~

# 从本地复制文件,指定端口,22为默认端口
scp -P 22 pet_local.txt root@192.168.10.174:/root

# 从本地复制文件夹,需要加参数-r
scp -r Music root@192.168.10.174:/root

3. 从远程到本地

# 从远程复制单个文件
scp root@192.168.10.174:/root/pet.txt .

# 从远程复制多个文件
scp root@192.168.10.174:/root/\{pet.txt,pet1.txt\} .

# 从远程复制文件,指定端口,22为默认端口
scp -P 22 root@192.168.10.174:/root/pet.txt .

# 从远程复制文件夹,需要加参数-r
scp -r root@192.168.10.174:/root/soft .

4. 从远程到远程

# 从远程复制文件到远程
scp -3 root@192.168.10.174:/root/pet.txt root@192.168.10.177:/root

5. scp性能

# scp默认的情况下使用Triple-DES加密算法来加密发送的数据,如果想提升传输的速度,你可以使用Blowfish加密算法,命令行输入-c blowfish即可。
scp -c blowfish pet_local.txt root@192.168.10.177:/root

# 通过使用压缩命令,可以显著的提高速度,但是会增加CPU的负荷,命令输入-C即可。
scp -c blowfish -C pet_local.txt root@192.168.10.177:/root

# 这里我用了390M的文件进行传输的测试, 通过比较使用压缩后的命令会传输的快些。
scp -c blowfish scp_390M.dmg root@192.168.10.177:/root
>> scp_390M.dmg             100%  390MB   4.6MB/s   01:24

scp -c blowfish -C scp_390M.dmg root@192.168.10.177:/root
>> scp_390M.dmg             100%  390MB   5.7MB/s   01:09

### SCP命令使用教程 SCP(Secure Copy Protocol)是基于SSH协议的文件传输工具,用于在本地计算机和远程计算机之间安全地复制文件[^4]。以下是SCP命令的详细使用方法、示例及语法。 #### 基本语法 SCP命令的基本语法如下: ```bash scp [options] source destination ``` - `source`:源文件路径。 - `destination`:目标文件路径。 - `[options]`:可选参数,用于指定端口、递归复制等操作[^5]。 #### 参数说明 以下是一些常用的SCP命令参数及其功能: - `-P`:指定远程主机的端口号[^5]。 - `-r`:递归复制目录及其内容[^5]。 - `-p`:保留文件的修改时间和权限[^5]。 - `-q`:安静模式,不显示传输进度。 - `-C`:启用压缩数据传输,减少网络带宽使用。 #### 示例代码 1. **将本地文件复制到远程服务器** 将本地文件`file.txt`复制到远程服务器的`/home/user/`目录下: ```bash scp file.txt user@remote-server:/home/user/ ``` 2. **从远程服务器下载文件到本地** 从远程服务器下载`/path/to/file.txt`到本地当前目录: ```bash scp user@remote-server:/path/to/file.txt . ``` 3. **指定非默认端口进行文件传输** 使用端口`29022`将本地文件`file.txt`复制到远程服务器: ```bash scp -P 29022 file.txt user@remote-server:./ ``` 4. **递归复制整个目录** 将本地目录`mydir`递归复制到远程服务器的`/home/user/`目录下: ```bash scp -r mydir user@remote-server:/home/user/ ``` 5. **压缩传输以减少带宽使用** 使用压缩选项`-C`将本地文件`file.txt`复制到远程服务器: ```bash scp -C file.txt user@remote-server:/home/user/ ``` 6. **保留文件的时间戳和权限** 复制文件时保留其修改时间和权限: ```bash scp -p file.txt user@remote-server:/home/user/ ``` #### 注意事项 - SCP命令使用SSH协议进行加密传输,因此比未加密的FTP更安全[^4]。 - 相较于`rsync`,SCP虽然速度稍慢,但不会显著增加系统资源消耗[^2]。 - 如果需要传输大量小文件,建议考虑硬盘I/O的影响[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值