在机器之间传输文件是一项非常常见的操作任务,作为开发人员您会经常这样做。

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 和二进制。

  1. ASCII stands for American Standard Code for Information Interchange . 它用于传输纯文本文件等文件。
  2. 二进制模式 :二进制模式用于传输非文本文件,例如图像。

默认传输模式是 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 来上传文件。

ftp> mget sample_file.1 sample_file.2
To transfer files from remote host to local host.
ftp> mput sample_file.1 sample_file.2
To transfer files from local host to remote host.

在这里 找到自动化的代码 .

什么是 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 .

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部