服务器部署-CentOS-Windows-文件传输

本文最后更新于:2020年9月27日 晚上

信息

上传文件总是逃不过的
借助第三方平台速度太慢,只能自己寻找协议/工具/代码来实现

Window端操作

SCP命令

scpsecure copy的简写,用于在Linux下进行远程拷贝文件的命令
scp传输是加密的,速度相对于不加密的传输来说要慢(废话)
scp还非常不占资源,不会提高多少系统负荷

在占资源这一点上,rsync就远远不及它了。虽然 rsyncscp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

scplinux系统下基于ssh登陆进行安全的远程文件拷贝命令
linuxscp命令可以在linux服务器之间复制文件和目录

注意,在cmd中要使用绝对路径

SCP上传

将本地的文件/文件夹上传到目标服务器路径

1
scp [本地文件路径(含文件名)] [SSH用户名]@[服务器IP]:[服务器上文件路径(不含文件名)]

案例:a.txt通过root用户的SSH传输到/home/root文件夹中

1
scp a.txt root@192.168.1.2:/home/root

在输入以后,会提示你输入root用户的SSH密码。输入正确以后就开始传输

SCP下载

将目标服务器文件/文件夹下载到本地

1
scp [SSH用户名]@[服务器IP]:[服务器上文件路径(含文件名)] [本地文件路径(不含文件名)]

案例:通过SSHroot用户 从服务器/home/root/a.txt下载a.txt到/Documents/下

1
scp root@192.168.1.2:/home/root/a.txt /Documents/ 

参数

端口

SSH默认22端口。如果不是22,就需要你填入一个参数-P

案例:a.txt通过 11024端口 的SSH的 manager用户 传输到/home/manager文件夹中

1
scp -P 11024 a.txt manager@192.168.1.2:/home/manager

文件夹传输

如果想要以文件夹为单位传输的话,加个-r参数。路径都改为文件夹路径即可

案例:将本地的Documents文件夹通过root用户SSH上传到/home/root/folder

1
scp -r /Documents  root@192.168.1.2:/home/root/folder  

其它参数

参数 说明
-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!