Skip to main content

Command Palette

Search for a command to run...

替代简陋的Linux FTP命令,使用免费开源的Linux FTP客户端LFTP,快速同步目录,多线程断点续传

Published
1 min read
替代简陋的Linux FTP命令,使用免费开源的Linux FTP客户端LFTP,快速同步目录,多线程断点续传

最近由于公司业务需要迁移两台Linux服务器,而服务器上存储着大量的Docker挂载卷,迁移时就需要对这些重要数据进行备份。刚好手上有一台几个T的FTP服务器,于是决定将数据备份到FTP服务器。

由于要备份的文件体积有几十个GB之巨,不方便进行打包压缩,最理想的是直接将本地目录同步到FTP服务器。

尝试使用Linux默认的ftp命令发现此命令功能较弱,仅支持文件上传下载等简单操作,并不能支持目录上传下载,经过一番Google后,我们发现lftp是一个不错的替代选项。

lftp 是一个免费开源且功能强大的Linux FTP客户端工具,它支持ftp, http, sftp, fish, torrent等网路协议,它支持命令补全,历史记录,允许多个后台任务执行等功能,它还有书签、排队、镜像、断点续传、多进程下载等功能,使用起来非常方便。

1. 安装

可以直接使用Linux包管理工具安装即可,如:

sudo yum install lftp -y # CentOS
sudo apt install lftp -y # Ubuntu

2. 基本使用

lftp [options] <site>
options:
 -f <file>           执行文件中的命令后退出
 -c <cmd>            执行命令后退出
 -e <cmd>            登录后后执行命令
 -u <user>[,<pass>]  用户名密码鉴权
 -p <port>           连接端口,默认21
site:                FTP服务器地址

# 使用 Colin用户登录到192.168.0.211 FTP服务器
lftp -u Colin,123123 192.168.0.211

3. 常用命令

lftp支持常见Shell命令,命令默认在服务端运行,多数情况下在命令前使用!则可以在本地执行。

命令功能备注
ls显示服务器文件列表!ls显示本地文件列表
cd切换服务器目录
lcd切换本地目录!cd不可用
pwd显示服务器当前目录lpwd!pwd均可显示当前本地目录
mkdir创建服务端目录
mv移动文件或目录
rm删除服务端文件或目录!rm删除本地文件或目录
get下载文件get -c init.sql #断点下载init.sql
mget下载多个文件mget -c *.txt #下载当前目录所有txt文件
put上传文件put -c init.sql #断点上传init.sql
mput上传多个文件mput -c *.txt #上传当前目录所有txt文件
mirror同步目录上传或下载目录

上传下载文件(get/put/mget/mput)可选参数:

-c      #支持断点续传
-E      #传输后删除源文件
-e      #传输前删除目标文件
-a      #指定传输为 ascii 模式,默认为二进制模式
-P N    #最大同时传输文件
-O      #指定本地或远程存放目录

同步目录(mirror)常用参数:

-c  #支持断点续传
-R  #默认为下载远程到本地,使用 -R 参数则会上传本地到远程,两者任一缺省则使用同名。
-n  #只下载较新的档案,可用于增量备份
-r  #只下载当前目录,不递归目录

# 断点下载服务端jira目录到到当前目录
mirror -c jira
# 断点上传本地confluence目录到服务器
mirror -c -R confluence

4.书签管理

bookmark list       #显示书签列表
bookmark add name   #保存当前连接为书签名字 name,下次打开可直接使用 lftp name
bookmark edit name  #编辑书签
bookmark del name   #删除书签

5.高级配置

lftp全局配置文件默认为/etc/lftp.conf,我们可以按需修改其全局设置,如修改编码,设置主动模式,忽略SSL错误等。

# 忽略SSL错误,可修复 Fatal Error: Certificate Verification: Not Trusted 
set ssl:verify-certificate no

# 启用主动模式,默认为被动模式。主动模式客户端开启数据传输端口,被动模式服务端开启数据传输端口
set  ftp:passive-mode  no

# 设置服务端编码
set  ftp:charset  "gbk"
# 设置客户端编码
set  file:charset  "UTF-8"

More from this blog

硬核Clash 配置教程,终极分流规则防配置覆盖

最近发现使用香港代理访问new bing貌似被封禁了,于是就要修改一下家里软路由的代理分流规则,因为手上的主力机是MacBook,好用的代理软件最常用的也是Clash X,那索性就一起搞了,正好有小伙伴问我想自定义Clash的分流规则,网上查了资料改是改了,结果一更新订阅链接,自己的辛辛苦亏写的配置就被无情的覆盖了,问我怎么避免这个问题。那就借此机会简单整理一个硬核一点的教程吧。 https://youtu.be/E86j-EwWKuM 很多同学看到一大坨的配置文件就头疼,其实大可不必,Cl...

Apr 29, 20234 min read71K
硬核Clash 配置教程,终极分流规则防配置覆盖

2023最新iPhone刷运动步数教程(非小米运动)

在现代社会,我们的生活方式越来越习惯于久坐不动,这对于我们的健康非常不利。而步数是衡量我们运动量的一种重要指标,为了更好地掌握自己的运动状态,很多人都在寻找一些方法来刷步数。 https://youtu.be/wR333Zn91rw 本文将介绍如何使用iPhone刷运动步数的方法。关于这个话题网络上的提供的方法大多都是使用小米运动(zeep life)APP,通过相关网站或者一些爱好者开发的应用程序(本质上都是通过发送API请求)修改其运动步数,然后再同步到iOS系统中进而修改iPhone中...

Apr 20, 20231 min read5.0K
2023最新iPhone刷运动步数教程(非小米运动)

Google Voice简单保号教程

Google Voice 是由 Google 提供的一项语音通信服务,它允许用户使用一个电话号码来接收和发送电话、短信和语音邮件等信息。Google Voice 提供了许多方便实用的功能,例如语音信箱转录、呼叫转移、呼叫筛选、呼叫记录等,同时还提供了许多免费或低成本的通信服务选项,例如国际长途、语音会议和互联网电话等。此外,Google Voice 还可以通过桌面和移动应用程序进行访问和管理,使其非常易于使用和管理。 Google Voice 有以下主要的优点: 一号多用:用户可以将自己的 G...

Apr 16, 20231 min read1.2K
Google Voice简单保号教程

加速阿里云服务器文件上传下载

在系统规模不大的情况下我们经常会将所有系统服务部署在一台服务器上,此时就经常需要在本地与服务器之间互传文件,如,下载服务器端程序运行日志,本地上传Docker镜像文件到服务器端等。 如果是较小的文件传输我们可以使用scp命令或搭建FTP服务使用各种FTP命令或工具进行文件传输,但如果传输文件较大时,将占用大量服务器带宽,且传输速度往往也被约束。下面笔者通过FTP下载阿里云VPS上一个1.78G的示例文件,下载速度仅有1.4M/s,耗时约25分钟。 类似于阿里云等知名服务器提供商除了提供基础的V...

Feb 3, 20231 min read167
加速阿里云服务器文件上传下载
A

A Nomad

29 posts

just a soul nomad

替代简陋的Linux FTP命令,使用免费开源的Linux FTP客户端LFTP,快速同步目录,多线程断点续传