Linux 中安装 LFTP 以下载和 传文件

LFTP 是一个 Linux 命令行实用程序,用于将文件从一台服务器下载和上传到另一台服务器。 它可以通过 FTP、FTPS、HTTP、HTTPS、FISH、SFTP、BitTorrent 和 FTP over HTTP 代理传输文件。 它还支持 FXP 协议,该协议允许绕过客户端计算机在两个 FTP 服务器之间进行数据传输。 它提供了一些有用的功能。 下面列出了其中一些:

  • 文件目录递归复制
  • 分段文件传输
  • 递归复制文件目录
  • 恢复部分下载
  • 转移队列

在这篇文章中,我们将向我们展示 Linux 中安装和使用 LFTP 下载和上传文件。

先决条件

  • 在 云平台上运行 Linux 的服务器
  • 在我们的服务器上配置的 root 密码

创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择任何具有至少 1GB RAM 的 Linux 操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

安装 LFTP

默认情况下,LFTP 包包含在所有主要 Linux 操作系统的官方存储库中。

对于 Ubuntu 和 Debian 操作系统,使用以下命令安装 LFTP 包:

apt-get install lftp -y

对于 CentOS、RHEL 和 Fedora 操作系统,使用以下命令安装 LFTP 包:

dnf install lftp -y

安装 LFTP 后,使用以下命令验证 LFTP 版本:

lftp --version

我们将获得以下输出:

LFTP | Version 4.8.1 | Copyright (c) 1996-2017 Alexander V. Lukyanov

LFTP is free software: we can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at wer option) any later version.

配置 LFTP 无密码访问

LFTP 支持 SSH 协议,因此最好在两台服务器之间配置无密码身份验证。 为此,请使用以下命令生成 SSH 密钥:

ssh-keygen -t rsa

我们应该看到以下输出:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Wer identification has been saved in /root/.ssh/id_rsa.
Wer public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:gBnx9dwo3RXNgdaaDjpVBIPjNY507+HQtquTjxiwFXs root@vyompc
The key's randomart image is:
+---[RSA 2048]----+
|    o.  . .oo.==.|
|     = . B B.= .o|
|    o o +.@ O o  |
|       . +o= B   |
|       .SooEB o  |
|        +o.  =   |
|       . .. . .  |
|          oo..   |
|         . o+.   |
+----[SHA256]-----+

接下来,使用以下命令将新生成的 SSH 密钥复制到远程 Linux 服务器:

ssh-copy-id root@remote-server-ip

我们将获得以下输出:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '216.98.10.172 (216.98.10.172)' can't be established.
ECDSA key fingerprint is SHA256:Bj/4/r1XP0LQ0Vl2LMsfywLX5vu5Zaqr723K7wGUvkY.
Are we sure we want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if we are prompted now it is to install the new keys
Password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@216.98.10.172'"
and check to make sure that only the key(s) we wanted were added.

接下来,使用以下命令验证 SSH 无密码身份验证:

ssh root@remote-server-ip

如果一切正常,我们将在以下输出中获得远程服务器 shell:

Linux linux 5.10.0-11-amd64 #1 SMP Debian 5.10.92-1 (2022-01-18) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@linux:~# 

Linux 中使用 LFTP

在使用 LFTP 之前,我们需要通过命令行界面连接到 FTP 或 SFTP 服务器。

登录 FTP 或 SFTP 服务器的基本语法如下所示:

lftp sftp://user@sftp-server-ip

或者

lftp ftp://user@ftp-server-ip

让我们使用以下命令连接到 SFTP 服务器:

lftp sftp://root@216.98.10.172

连接到 SFTP 服务器后,我们将在以下输出中获得 LFTP shell:

lftp root@216.98.10.172:~>

我们现在可以使用 ls 命令列出所有文件和目录:

lftp root@216.98.10.172:~> ls

我们将获得以下输出:

drwx------    4 root     root         4096 Mar 16 02:46 .
drwxr-xr-x   18 root     root         4096 Mar 16 02:44 ..
-rw-r--r--    1 root     root          570 Jan 31  2010 .bashrc
drwxr-xr-x    3 root     root         4096 Nov 22  2019 .local
-rw-r--r--    1 root     root          161 Jul  9  2019 .profile
drwx------    2 root     root         4096 Mar 16 02:46 .ssh

使用 LFTP 上传和下载文件

我们可以使用 pget 命令从 SFTP 服务器下载文件。 例如,要将名为 file1.txt 的文件从 SFTP 服务器下载到本地计算机,请在 LFTP shell 中运行以下命令:

lftp root@216.98.10.172:~> pget file1.txt

我们将获得以下输出:

104857600 bytes transferred in 58 seconds (1.73 MiB/s)          

我们可以使用 put 命令将文件上传到 SFTP 服务器。 例如,要将名为 file2.txt 的文件从本地机器上传到 SFTP 服务器,请运行以下命令:

put file2.txt

我们将获得以下输出:

10485760 bytes transferred in 21 seconds (499.1 KiB/s)                    

我们可以使用 mirror 命令从 SFTP 服务器下载整个目录。

mirror /etc /opt/

此命令会将 /etc 目录从 SFTP 服务器下载到 /opt 目录中的本地计算机。

如果要将目录从本地机器上传到 SFTP 服务器,请使用 mirros -R 命令:

mirror -R /var/www/html /mnt/

这会将名为 /var/www/html 的目录从本地机器上传到 /mnt 目录内的 SFTP 服务器。

最后,运行 exit 命令退出 LFTP shell。

exit

本文记录了,如何使用 LFTP 命令从 SFTP 服务器下载和上传文件和目录。 我们现在可以尝试使用 LFTP 命令将文件和目录传输到 FTP 服务器。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论