当前位置: 首页 > news >正文

linux 简单使用 sftp 和 lftp命令

目录

  • 一. 环境准备
  • 二. sftp命令连接到SFTP服务器
  • 三. lftp命令
    • 3.1 连接FTP和SFTP服务器
    • 3.2 将文件从sftp服务器下载到本地指定目录
  • 四. 通过WinSCP命令行从SFTP服务器获取文件到Windows


一. 环境准备

⏹在安卓手机上下载个MiXplorer,用作SFTPFTP服务器

  • 官网: https://mixplorer.com/

⏹设置给服务器设置好用户名,密码之后,开启服务器

在这里插入图片描述

⏹下载WinSCP,准备用其命令行的方式从服务器获取数据

  • 官网: https://winscp.net/eng/index.php

⏹在linux中安装 lftp命令

sudo apt install lftp

二. sftp命令连接到SFTP服务器

sftp:是 SSH 文件传输协议,属于 SSH 安全套接层(SSH Secure Shell)的一部分,用于安全地在客户端和服务器之间传输文件。
sftp:使用 SSH 协议进行连接和数据传输,所有的数据都是加密的,因此更加安全,适合对数据安全性要求较高的场景。

  • sftp -P 端口号 用户名@服务器地址
  • 为了安全考虑,密码无法被显示的指定在命令行中
sftp -P 2222 fengyehong@192.168.3.23

⏹如下如图所示,通过命令行登录SFTP服务器

  • 支持 lsls -l命令
  • quit:退出服务器

在这里插入图片描述


三. lftp命令

  • lftp 是一个功能强大的命令行 FTP 客户端程序,它支持多种协议(包括 FTP、FTPS、SFTP 等),可以用于文件传输和管理。
  • lftp 提供了丰富的功能,包括下载、上传、目录操作、文件搜索、断点续传、并行传输等。它可以处理多个连接和任务,并支持脚本化操作。
  • 适用于需要进行大量文件传输、批量处理或自动化操作的情况,例如备份、同步、批量下载等。

3.1 连接FTP和SFTP服务器

⏹连接FTP服务器(协议可省略)

lftp ftp://Admin:1234@192.168.3.23:2121

在这里插入图片描述

⏹连接SFTP服务器,需要显示的指定协议

lftp sftp://fengyehong:1234@192.168.3.23:2222

在这里插入图片描述

3.2 将文件从sftp服务器下载到本地指定目录

  • -c:用于执行一系列指定的命令,然后退出。这对于需要在脚本或命令行中执行一组自动化文件传输操作非常有用。
  • 多个命令之间使用;来分隔,表示按照顺序执行这些命令
  • set net:max-retries 1:设置最大重试次数为 1
  • mget:批量下载文件
  • -O:指定下载到的本地目录
    • 注意:是英文大写的O,并不是数字0
  • &&:逻辑与运算符,用于连接两个命令,确保前一个命令执行成功后才执行后一个命令。
  • sleep 1:暂停 1 秒,确保 lftp 命令执行完成后再退出
lftp -c "set net:max-retries 1; open sftp://fengyehong:1234@192.168.3.23:2222; mget /02-歌单/中文歌.txt -O /home/fengyehong/jmw_work_space && sleep 1"

在这里插入图片描述


四. 通过WinSCP命令行从SFTP服务器获取文件到Windows

  • 通过PowerShell的方式执行
  • 由于安装目录中存在空格,所以通过 PowerShell 中的 & 命令执行 WinSCP.com文件
    • WinSCP.com配置到环境变量中 或者 通过相对路径来执行 WinSCP.com文件的话,就不存在上述问题了
  • 整个命令行的意思就是
    • 通过WinSCP.com文件
    • 连接sftp服务器
    • 从服务器的指定目录下
    • 将文件复制到本地的D盘
    • 退出程序
& "C:\Program Files (x86)\WinSCP\WinSCP.com" /command "open sftp://fengyehong:1234@192.168.3.23:2222" "get /02-歌单/纯音乐-静.txt D:\纯音乐-静.txt" "exit"

在这里插入图片描述

相关文章:

  • java算法:插入排序
  • 34、shell数组+正则表达式命令
  • 视频监控平台:支持交通部行业标准JT/T905协议(即:出租汽车服务管理信息系统)的源代码的函数和功能介绍及分享
  • 示例:推荐一个应用Adorner做的表单对话框
  • Linux ComfyUI安装使用;Stable Diffusion 3使用
  • day3-xss漏洞(米斯特web渗透测试)
  • 【已解决】在IDEA中使用Git拉取代码时提示:Can‘t update / master has no tracked branch
  • 昇思25天学习打卡营第1天|快速入门
  • Ubuntu 24.04 安装 libaio1 和 libaio-dev
  • 在C++中,构造器(Builder)模式的思考(《C++20设计模式》及常规设计模式对比)
  • 【database1】mysql:DDL/DML/DQL,外键约束/多表/子查询,事务/连接池
  • Python: create object
  • Trimesh介绍及基本使用
  • 【notes2】并发,IO,内存
  • EndNote 21 for Mac v21.3 文献管理软件安装
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • Mysql数据库的条件查询语句
  • NSTimer学习笔记
  • Web设计流程优化:网页效果图设计新思路
  • 基于axios的vue插件,让http请求更简单
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 浅谈web中前端模板引擎的使用
  • 如何合理的规划jvm性能调优
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 通过npm或yarn自动生成vue组件
  • 系统认识JavaScript正则表达式
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 如何在招聘中考核.NET架构师
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • ${ }的特别功能
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (2)leetcode 234.回文链表 141.环形链表
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (十三)Flask之特殊装饰器详解
  • (一)Linux+Windows下安装ffmpeg
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)http-server应用
  • (转)ObjectiveC 深浅拷贝学习
  • (转)菜鸟学数据库(三)——存储过程
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .env.development、.env.production、.env.staging
  • .NET C# 使用GDAL读取FileGDB要素类
  • .NET Core 2.1路线图
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net6 当连接用户的shell断掉后,dotnet会自动关闭,达不到长期运行的效果。.NET 进程守护
  • .Net7 环境安装配置
  • .net和jar包windows服务部署
  • .NET是什么