lftp命令管理文件示例

时间:2020-03-05 15:28:25  来源:igfitidea点击:

LFTP是一个命令行FTP客户端。
除了FTP,LFTP还支持许多协议,例如HTTP,HTTPS,HFTP,FISH,FTPS和FXP。
它支持镜像目录,我们可以在两种模式下输入命令。

LFTP在命令行shell上运行,或者直接在bash shell上运行。
如果要编写使用LFTP的脚本,Bash Shell尤其有用。

设置FTP服务器

由于LFTP是FTP客户端,因此要使用它,我们需要进行一些FTP服务器设置。
因此,让我们设置一个基本的FTP服务器,以用于我们的LFTP功能演示。
Ubuntu中的简单ftp服务器是vsftpd,我们将从存储库中安装它。

sudo apt install vsftpd

安装后,我们需要允许用户将其写入服务器。
默认情况下,FTP服务器是只读的。

sed -i.orig 's/#write_enable=YES/write_enable=YES/g' /etc/vsftpd.conf

由于我们更改了配置文件,因此需要重新启动服务器

systemctl restart vsftpd

检查状态,以查看服务器守护程序是否正在运行

sudo systemctl status vsftpd

使用LFTP连接到FTP服务器

现在移至其他计算机,VM或者服务器。
我们将其中安装LFTP并连接到FTP服务器的那一台。
LFTP也存在于Ubuntu存储库中,因此让我们获取它。

sudo apt-get install lftp

在连接到FTP服务器之前,让我们从连接目录创建一个目录

miki@ThinkPad-X220T:~$mkdir ftp
miki@ThinkPad-X220T:~$cd ftp/

并用一些文件填充

miki@ThinkPad-X220T:~/ftp$touch test{1..9}

现在我们可以使用lftp连接到FTP服务器

lftp ftp://[email protected]
Password:

输入用户的密码,我们就可以进入。
由于建立FTP连接时我位于ftp dir中,因此客户端上的工作本地目录为~/ftp。
我们将尝试的第一个命令是将文件上传到ftp服务器

1.放置命令

此命令从本地目录中获取一个文件,并将其上传到服务器。
我们将上传文件test1.

lftp [email protected]:~> put test1

2.列出远程目录的内容

我们可以检查使用ls命令已完成的操作。

lftp [email protected]:~> ls
-rw------- 1 1000 1000 0 Dec 01 12:13 test1

我们看到该文件已复制到FTP服务器。

3.目录的反向镜像

如果要将整个目录镜像到服务器,则将使用反向镜像命令。

lftp [email protected]:~> mirror -R

这会将我们的本地目录内容复制到服务器。
相反的过程是没有'-R'。
当我们不向文件添加任何路径时,将使用当前的本地和远程目录。
在我们的例子中就是~/ftp和~/。

4.更改本地目录

本地目录可以使用lcd命令更改

lftp [email protected]:~> lcd /home/miki/Videos/
lcd ok, local cwd=/home/miki/Videos

5.打印本地工作目录

我们可以使用lpwd命令检查本地工作目录是什么

lftp [email protected]:~> lpwd
/home/miki/Videos

6.中断后恢复镜像

如果文件中断,LFTP允许恢复文件传输。
中断后,我们可以通过添加“ -c”标志(表示继续)来重复该命令。

^C Interrupt
lftp [email protected]:~> mirror -R -c

7.从ftp服务器下载文件

使用pget命令将文件从远程目录下载到本地目录

lftp [email protected]:~> pget ubuntu-16.04.1-server-amd64.iso

8.从服务器镜像到本地目录

前面我们展示了相反的方法,现在我们使用mirror命令从服务器获取数据

mirror

这很简单,只需镜像即可。

9.镜像任意目录

我们还可以使用不在本地目录中的数据进行镜像,例如,使用以下命令:

mirror . /home/miki/Videos/

这会将数据从服务器的工作目录(。
是第一个路径,因此是当前目录)提取到我们本地计算机上的~/Videos中。
如果我们不使用LCD移至~/Vidoes,则无所谓,拉动将起作用。

10.退出shell

退出lftp shell的命令是bye。
如果要编写lftp操作脚本,这很重要。

11.使用LFTP命令作为脚本的一部分

退出LFTP后,让我们看看如何在不登录ftp服务器的情况下使用上述命令。
这样,我们可以将其嵌入到bash脚本中。

miki@ThinkPad-X220T:~$lftp -e 'mirror /home/miki//home/miki/Videos/' -u miki,password ftp://192.168.122.65

12.镜像站点

lftp也可以使用HTTP协议,这使其适合下载常规。

miki@ThinkPad-X220T:~$lftp -e "mirror -c" http://theitroad.com/