如何使用scp命令传输文件

时间:2020-03-05 15:29:23  来源:igfitidea点击:

SCP是一个安全的复制程序,用于在网络上的Linux主机之间传输文件或者目录。
SCP使用SSH协议来传输数据。

我们可以如下传输文件或者目录:

1)本地主机到远程主机。
2)远程系统到本地系统。
3)从本地系统中的两个远程主机之间传输。

在本教程中,让我们了解一些SCP命令以在Linux系统之间传输文件。

1)使用SCP命令将来自远程主机的文件复制到本地

以下示例将从远程系统'192.168.1.10'中将名为"file_for_copy.txt"的文件复制到本地系统上的当前目录(Dot指示当前目录)。

$scp [email protected]:/home/bobby/file_for_copy.txt .
[email protected]'s password:
file_for_copy.txt 100% 0 0.0KB/s 00:00
bobby@Inspiron-1440:~$ls
file_for_copy.txt

使用SCP命令将来自远程主机的目录复制到本地

例如,可以将目录复制(如cp)(如cp),例如:递归,所以目录中的所有内容也可以复制

$scp -r [email protected]:/home/bobby/dir_for_copy .
[email protected]'s password:
file1.txt 100% 0 0.0KB/s 00:00
file3.txt 100% 0 0.0KB/s 00:00
file2.txt 100% 0 0.0KB/s 00:00
$ls -ld dir_for_copy
drwxrwxr-x 2 bobby bobby 4096 2012-11-07 15:11 dir_for_copy

3)将文件从本地复制到远程主机

SCP打印输出的-V选项,然后执行SCP,并在其进度上打印调试消息。
在以下示例中,使用-v选项。
其中本地文件将复制到远程主机。

$scp -v examples.desktop [email protected]:/home/bobby

同样,可以将目录复制为"-r""选项。
在以下示例中,将名为JVM的目录复制到远程主机。

$scp -r jvm [email protected]:/tmp
[email protected]'s password:
file2.txt 100% 42 0.0KB/s 00:00
file.txt 100% 39 0.0KB/s 00:01

4)从本地主机复制两个远程主机之间的文件

要复制两个主机之间的文件,SSH服务应该在机器上运行。
"-3"选项将通过本地主机在两个远程主机之间传输文件。
以下命令将文件/home/bobby/myfile1.txt复制到192.168.1.20计算机的计算机192.168.1.10到/tmp目录.20计算机,具有详细输出。

$scp -3 -v [email protected]:/home/bobby/myfile1.txt [email protected]:/tmp

同样,可以在具有-r选项的两个远程计算机之间复制目录。

$scp -3 -r [email protected]:/home/bobby/mydir [email protected]:/tmp
[email protected]'s password:
Could not chdir to home directory /home/bobby: No such file or directory
[email protected]'s password:

5)SCP具有端口号

假设,远程计算机的SSH端口是2200(而不是默认的SSH端口22)。
然后,我们需要使用-p选项执行scp命令,如下所示:

$scp –P 2200 -r test_folder [email protected]:/home/test/

6)SCP命令复制多个文件(一个衬班)

我们可以使用scp命令按照下面的scp命令复制多个文件,而无需执行多次

$scp file1.txt file2.txt file3.txt [email protected]:/home/bobby

7)复制文件而不更改文件的时间戳

有时我们可能想要保留原始文件的时间戳。
但是当我们以正常方式SCP到不同的位置时,时间戳修改。
但是使用"-p""选项,我们可以使用相同的原始时间戳复制文件,如下所示。

$scp -p file1.txt [email protected]:/home/bobby

8)快速SCP复制文件

默认情况下,SCP使用AES-128将数据加密,因为它的安全性很高。
但这的缺点是它减慢了文件复制过程一点。
但是,如果我们想要更快地复制文件,可以使用河豚或者RC4如下。

$scp -c blowfish [email protected]:/home/user/file .
$scp -c arcfour [email protected]:/home/user/file .

9)SCP命令增加了安全性

如果我们寻找的安全性,则可以使用3DES更安全的方式复制文件。
但这会让这个过程变慢一点。

$scp -c 3des [email protected]:/home/user/file .

10)带宽有限的SCP命令

使用SCP命令时,我们可以按照下面限制带宽(这里的带宽在Kbit/s中指定)。

$scp -l50 [email protected]:/home/user/file .

11)使用IPv4和IPv6的SCP命令

如果需要,我们可以强制SCP命令使用IPv4或者IPv6如下所示

$scp -4 [email protected]:/home/user/file .
$scp -6 [email protected]:/home/user/file .