MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > linux / 正文

日常开发中 scp命令用于Linux 服务器之间远程拷贝文件

2024-11-26 15:39 huorong linux 4 ℃ 0 评论

日常开发中,大家是怎么样将文件从A服务器传输到B服务器的。

是将文件下载到本地,然后再上传到B服务器吗?刚接触linux服务器的童鞋应该是这种简单粗暴的方式。


今天给大家介绍一下Linux之间复制文件和目录的scp命令:

scp secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

scp的语法

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2

参数说明:

# -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)的选项

本机复制到远程:

1、拷贝A服务器上的文件到B服务器上

#将本机上的文件file.zip

scp 的文件file.zip root@120.130.11.25:/usr/local/soft

2、拷贝A服务器上的目录到B服务器上

#将本机上java文件夹及子文件夹远程拷贝到 120.130.11.25

scp -r java文件夹 root@120.130.11.25:/usr/local

远程复制到本机:

1、从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可

#将120.130.11.25 服务器上的jdk-8u231-linux-i586.tar.gz文件远程拷贝到本机的 /usr/local目录下
scp root@120.130.11.25:/usr/local/jdk-8u231-linux-i586.tar.gz  /usr/local

#将120.130.11.25服务器上的java文件夹远程拷贝到本机的 /usr/local目录下
scp -r root@120.130.11.25:/usr/local/java  /usr/local/  

说明

1、如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P (大写)参数来设置命令的端口号。

命令格式如下:

#假如 scp 命令使用端口号 4588
scp -P 4588 file.zip root@远程服务器IP:/usr/local/

2、使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。

3、远程服务器IP请使用内网,传输速度非常之快

Tags:linux远程复制

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言