在机器之间传输文件是一项非常常见的操作任务,作为开发人员您会经常这样做。
Linux 提供了许多实用程序来传输文件。在本教程中,我们将讨论 FTP
和 SCP
。许多自动化脚本还部署 FTP 或 SCP 来移动文件。
什么是 FTP?
FTP 是一种用于通过网络交换文件的网络协议。它使用端口 21。FTP 使您可以使用命令访问远程系统以交换文件 ftp
。
FTP 语法
FTP语法如下:
ftp host
这里 host
可以是远程主机的主机名或 IP 地址。
FTP 命令
FTP 命令与 Linux 命令类似。我们将讨论其中的一些命令。
命令 | 用法 |
---|---|
打开 | 打开与另一台计算机的远程连接。 |
得到 | 将文件从远程系统复制到本地系统。 |
放 | 将文件从本地系统复制到远程系统上的目录。 |
毫克 | 将多个文件从远程系统传输到本地系统的当前目录。 |
输入 | 将多个文件从本地系统传输到远程系统上的目录。 |
再见/退出 | 准备退出 FTP 环境。 |
关闭 | 终止 FTP 连接。 |
ASCII | 启用文件传输模式为 ASCII |
二进制 | 将文件传输模式启用为二进制。 |
如何通过 FTP 传输文件
FTP 提供两种传输模式:ASCII 和二进制。
- ASCII stands for American Standard Code for Information Interchange . 它用于传输纯文本文件等文件。
- 二进制模式 :二进制模式用于传输非文本文件,例如图像。
默认传输模式是 ASCII。
步骤 1 – 连接到 FTP
在下面的示例中, hostA
是远程主机。系统将提示您输入用户名和密码。
$ ftp hostA
Connected to hostA.
220 hostA FTP server ready.
Name (hostA:user): user
331 Password required for user.
Password: password
230 User user logged in.
Remote system type is LINUX.
连接成功后,您会注意到 ftp>
开头的符号。现在我们可以运行 FTP 命令了。
步骤 2 – 选择文件传输模式
您可以根据文件类型选择模式(二进制或 ASCII)。
ftp> ascii
200 Type set to A.
步骤 3 – 传输文件
我们使用 get
命令将文件 sample.txt
从远程 FTP 服务器传输到本地机器。
ftp> get sample.txt
200 PORT command successful.
150 Opening ASCII mode data connection for sample.txt (22 bytes).
226 Transfer complete.
local: sample.txt remote: sample.txt
22 bytes received in 0.012 seconds (1.54 Kbytes/s)
步骤 4. 结束会话
ftp> bye
221-You have transferred 22 bytes in 1 files.
221-Total traffic for this session was 126 bytes in 2 transfers. 221-Thank you for using the FTP service on hostA.
221 Goodbye.
如何通过 FTP 传输多个文件
要批量传输文件,有两个命令 mget
: mput
.
您使用 mget
来下载文件,而您使用 mput
来上传文件。
在这里 找到自动化的代码 .
什么是 SCP?
SCP 代表安全复制。它使用 SSH 和端口 22。通过 SCP 传输的数据是加密的,嗅探器无法访问它。这使得 SCP 非常安全。
您可以使用 SCP 来:
- 将文件从本地机器传输到远程主机。
- 将文件从远程主机传输到本地机器。
SCP 语法
让我们探索一下 SCP 的语法。
scp [FLAG] [user@]SOURCE_HOST:]/path/to/file1 [user@]DESTINATION_HOST:]/path/to/file2
-
[FLAG]
指定可以提供给 SCP 的选项。以下是有关标志的一些详细信息:
旗帜 | 描述 |
---|---|
-r | 递归复制目录。 |
-q | 用于隐藏进度表和除错误之外的任何其他信息。 |
-C | 用于在将数据发送到目的地时压缩数据。 |
-P | 指定目标 SSH 端口。 |
-p | 保留文件访问时间。 |
-
[user@]SOURCE_HOST
是源机器。 -
[user@]DESTINATION_HOST:]
是目标机器。
注意 : 要通过 SCP 传输文件,必须知道凭据,并且用户应具有写入权限 .
如何通过以下方式将文件从本地计算机传输到远程主机 SCP
要将文件传输到远程主机,请使用以下命令:
scp source_file.txt remote_username@10.13.13.11:/path/to/remote/directory
在上面的命令中, source_file.txt
是需要复制的文件。 Remote_username
是远程主机的用户名 10.13.13.11
。 之后 :
指定目标路径。
示例输出:
remote_username@10.13.13.11's password:
source_file.txt 100% 0 0.0KB/s 00:00
该文件 source_file.txt
现在将放置在 /path/to/remote/directory
.
要复制目录,请使用 -r
如下所示的标志。
scp -r /local/directory remote_username@10.13.13.11:/path/to/remote/directory
如何通过以下方式将文件从远程主机传输到本地计算机 SCP
要将文件从远程主机传输到本地机器,请使用以下命令:
scp remote_username@10.13.13.11:/remote/source_file.txt /path/to/local/directory
Be extra careful when transferring files as SCP 覆写 the already existing files.
包起来
在本教程中,您学习了如何通过命令行使用 FTP 和 SCP 传输文件和目录。
当这些命令自动化时,它们在数据仓库、ETL(提取、转换、加载)、报告、归档和批量文件处理方面发挥更大的作用。请尝试一下这些命令。让我们在 Twitter .
发表评论 取消回复