linux常用命令(10):scp命令(远程拷贝命令,复制文件到远程服务器)
文章目录
- 一、SCP介绍
- 1.1、语法
- 1.2、核心功能场景
- 二、示例
- 2.1、本地文件复制到远程服务器
- 2.2、从远程主机复制文件到本地
- 2.3、递归复制目录
- 2.4、从远程服务器上复制目录
- 2.5、自定义端口
- 2.6、迁移整个网站目录
一、SCP介绍
Linux scp
命令是一个用于在本地计算机和远程计算机之间进行文件传输的命令行工具。这个命令基于SSH(Secure Shell)协议,提供了加密和安全的文件传输功能。实现不同服务器之间的文件传输
。
scp
是 secure copy
的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp
是加密的,rcp
是不加密的,scp
是 rcp
的加强版。
1.1、语法
scp [选项] [源文件] [目标路径]
- [选项]:用于指定 scp 命令的行为,例如递归复制、保留文件属性等。
- [源文件]:要复制的文件或目录的路径。
- [目标路径]:文件或目录要复制到的目标路径。
常用选项:
以下是一些常用的 scp 命令选项:
- -r:递归复制整个目录。
- -P:指定远程主机的 SSH 端口号(默认是 22)。
- -p:保留文件的修改时间、访问时间和权限。
- -v:显示详细的调试信息,有助于排查问题。
- -C:启用压缩,可以加快传输速度。
1.2、核心功能场景
本地 → 远程 (推送)
scp /local/file.txt user@remote_ip:/remote/directory/示例:
#将本地文件推送到远程服务器/home/root目录下
scp /local/file.txt root@192.168.10.1:/home/root
远程 → 本地 (拉取)
scp user@remote_ip:/remote/file.txt /local/directory/
远程 → 远程
scp user1@source_ip:/path/file user2@target_ip:/target/path/
二、示例
2.1、本地文件复制到远程服务器
假设你有一个文件 file.txt,你想将它复制到远程主机的 /home/user/ 目录下,可以使用以下命令
scp file.txt user@remote_host:/home/user/
在这个命令中:
- file.txt 是本地文件。
- user@remote_host 是远程主机的用户名和地址。
- /home/user/ 是远程主机上的目标路径。
2.2、从远程主机复制文件到本地
如果你想将远程主机上的文件 file.txt 复制到本地的当前目录,可以使用以下命令:
scp user@remote_host:/home/user/file.txt .
在这个命令中:
- user@remote_host:/home/user/file.txt 是远程主机上的文件路径。
- . 表示当前目录。
2.3、递归复制目录
如果你想复制整个目录及其内容,可以使用 -r
选项。例如,将本地的 my_directory 目录复制到远程主机的 /home/user/ 目录下:
scp -r my_directory user@remote_host:/home/user/
2.4、从远程服务器上复制目录
将远程服务器上/tmp/file
目录的所有文件复制到当前目录
scp -r root@remote_ip:/tmp/file .
2.5、自定义端口
SCP 使用端口 22 作为默认端口。但是出于安全原因,您可以将端口更改为另一个端口。例如,我们将使用端口 2222。那么命令必须像这样。
scp -P 2222 file.tar.gz root@remote_ip:/tmp/
2.6、迁移整个网站目录
scp -rpC -P 2222 /var/www/html/ root@remote_ip:/var/www/
参数解析:
-r
递归 -p
保留属性 -C
压缩 -P
指定端口