scp
或 secure copy
是一个命令行工具,用于通过网络或internet安全地复制文件和文件夹。通过网络传输的文件或文件夹通过使用不同的算法进行加密来保护。此外,出于安全原因,各方通过使用密码或证书进行身份验证。
scp命令语法
scp命令具有以下语法。命令的SRC部分是指定源系统、源用户、源文件和文件夹的源部分。DST是目标用户、目标系统和目标文件和文件夹。
scp OPTION [email protected]_SYSTEM:SRC_FILE [email protected]_SYSTEM:DST_FILE
- 期权 用于为scp命令设置不同的功能。
- SRCu用户 通常用于设置SRCu系统用户。
- SRCU系统 是提供SRCu文件的系统。
- DSTU用户 是DST系统的用户。
- DST系统 将复制DSTU文件的系统。
- DST文件 是将从SRCu文件复制的目标文件。
scp参数和选项
scp提供了不同的参数和选项,可用于保存文件属性、文件传输期间的压缩等。
参数 | 说明 |
---|---|
-1 | 使用scp协议版本1 |
-2 | 使用scp协议版本2 |
-4 | 使用IPv4 |
-6 | 使用IPv6 |
-B类 | 使用批处理模式(无密码) |
-C级 | 在传输期间启用压缩 |
-我 | 指定用于身份验证的私钥 |
-我 | 设置带宽限制 |
-o | 传递SSH选项 |
-第 | 指定端口号 |
-第 | 保留修改和访问日期和时间 |
-问 | 退出模式 |
-右 | 递归复制 |
-五 | 详细模式 |
将本地文件复制到远程系统
scp通常用于将本地文件或源文件复制到远程或目标系统和文件。我们将使用前面定义的语法。由于我们将从当前本地系统复制,我们将不提供SRCu用户或SRCu系统,因为我们已登录allready。
$ scp db.txt [email protected]:/home/ismail/mydb.txt
- 数据库.txt 是要复制到远程系统192.168.10.10的源文件。
- 伊斯梅尔 是远程系统的用户。
- 192.168.10.10 是远程系统IP地址。
- /家乡/伊斯梅尔/ 是目标文件路径或位置。
- mydb.txt文件 是目标文件名。
相关文章: 使用SCP命令从本地复制到远程
从本地系统复制到远程系统时,还可以使用远程系统或目标系统名称作为主机名,如下所示。在下面的示例中,我们将使用 srv.linuxtect.com 作为目标系统名称。
$ scp db.txt [email protected]:/home/ismail/mydb.txt
您也可以使用 -r
选项以递归方式复制本地文件或文件夹。这将所有指定的路径文件夹和包含文件的子文件夹复制到目标。
$ scp -r /home/ahmet/Downloads [email protected]:/home/ismail/income/
将远程系统文件复制到本地系统
scp命令还可用于将远程文件和文件夹复制到本地系统。
$ scp [email protected]:/home/ismail/mydb.txt db.txt
- 伊斯梅尔 是作为源系统用户的远程系统的用户。
- 192.168.10.10是源系统的远程系统IP地址。
- /家乡/伊斯梅尔/ 是源系统上的源文件路径。
- mydb.txt文件 位于源系统中的源文件名。
- 数据库.txt 是将复制到本地系统的目标文件名。
从远程系统复制到本地系统时,还可以使用远程系统或源系统名称作为主机名,如下所示。在下面的示例中,我们将使用 srv.linuxtect.com 作为源系统名称。
$ scp [email protected]:/home/ismail/mydb.txt db.txt
您也可以使用 -r
选项以递归方式复制本地文件或文件夹。这将所有指定的路径文件夹和包含文件的子文件夹复制到目标。
$ scp -r [email protected]:/home/ismail/income/ /home/ahmet/Downloads
从远程系统复制到远程系统
scp是一个非常灵活的命令,可用于将文件和文件夹从远程系统复制到源系统和目标系统都是远程的远程系统。
$ scp [email protected]:/etc/hosts [email protected]:/home/ismail/myhosts
- 根 是作为源系统用户的远程系统的用户。
- 192.168.10.10 是源系统的远程系统IP地址。
- /等等 是源系统上的源文件路径。
- 主机 是源系统中的文件名。
- 伊斯梅尔 是目标系统用户名。
- 192.168.10.20 是作为目标系统的远程系统IP地址。
- /家乡/伊斯梅尔 是将复制到本地系统的目标文件名。
- 我的主机 是目标文件名。
相关文章: 如何使用SFTP命令安全地传输文件和文件夹?
我们还可以将源系统名或目标系统名指定为主机名,如下所示。 linuxtect.com 是源系统域名。 pythontect.com 是目标系统域名。
$ scp [email protected]:/etc/hosts [email protected]:/home/ismail/myhosts
我们也可以使用 -r
选项以递归方式复制文件和文件夹。所有给定的文件夹及其子文件夹和文件都将从源复制到目标。
$ scp -r [email protected]:/etc/ [email protected]:/home/ismail/etc
设置scp端口号
默认情况下,scp命令使用默认的SSH端口,即TCP 22。如果是默认端口号,则通常不会显式指定该端口号。但在某些情况下,端口号可以不同于22,我们可以使用-P选项指定端口号。在下面的示例中,我们将scp端口号设置为2222。
$ scp -P 2222 db.txt [email protected]:/home/ismail/mydb.txt
启用压缩
scp用于传输不同的文件类型。文件可以有不同的大小。传输的文件和数据可以压缩,以保持传输的大小和减少传输时间。c选项用于压缩文件,但主要用于文本和类似ASCII类型的文件。
$ scp -C db.txt [email protected]:/home/ismail/mydb.txt
设置带宽限制
默认情况下,scp命令将使用现有带宽进行传输。如果带宽是有限的,您不应该填写所有的带宽,您可以设置带宽限制与 -l
不超过给定带宽限制的选项。在下面的示例中,我们将scp传输限制设置为1000 Kbps。
$ scp -l 1000 db.txt [email protected]:/home/ismail/mydb.txt