lftp命令管理文件示例
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服务器
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
6.中断后恢复镜像
如果文件中断,LFTP允许恢复文件传输。
中断后,我们可以通过添加“ -c”标志(表示继续)来重复该命令。
^C Interrupt lftp [email protected]:~> mirror -R -c
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/