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

docker 安装 sftpgo

sftpgo 简介

sftpgo 是一个功能齐全且高度可配置的 SFTP 服务器,具有可选的 HTTP/S、FTP/S 和 WebDAV 支持。支持多种存储后端:本地文件系统、加密本地文件系统、S3(兼容)对象存储、Google 云存储、Azure Blob 存储、SFTP。
在这里插入图片描述

官方网站:https://sftpgo.com/

项目地址:https://github.com/drakkan/sftpgo

sftpgo 安装

准备一台linux服务器,以ubuntu 22.04 server为例,已安装docker环境。

创建sftpgo数据存储目录

mkdir -p /data/sftpgo/{data,home}
chown -R 1000:1000 /data/sftpgo/

说明:

SFTPGo 使用两个主要卷:

  • /srv/sftpgo 处理持久数据。 SFTP/FTP/WebDAV 用户的默认主目录是 /srv/sftpgo/data/ 。
  • /var/lib/sftpgo 是容器内定义的 sftpgo 系统用户的主目录。这也是容器工作目录,使用默认配置时将在此处创建主机密钥。

运行sftpgo容器

docker run -d --name sftpgo \--restart always \-p 8080:8080 \-p 2022:2022 \-p 8090:8090 \--mount type=bind,source=/data/sftpgo/data,target=/srv/sftpgo \--mount type=bind,source=/data/sftpgo/home,target=/var/lib/sftpgo \-e TZ=Asia/Shanghai \-e SFTPGO_HTTPD__BINDINGS__0__PORT=8080 \-e SFTPGO_WEBDAVD__BINDINGS__0__PORT=8090 \drakkan/sftpgo:v2.5.4

SFTPGo 使用以下默认配置的 TCP 端口:

  • 2022 用于 SFTP 服务。
  • 8080 用于 Web 管理员用户界面。
  • 8090 用于webdav

查看容器运行状态

root@ubuntu:~# docker ps
CONTAINER ID   IMAGE                            COMMAND                  CREATED        STATUS                PORTS                                                                                                                             NAMES
44d9d989172c   drakkan/sftpgo:v2.5.4            "sftpgo serve"           3 hours ago    Up 3 hours            0.0.0.0:2022->2022/tcp, :::2022->2022/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8090->8090/tcp, :::8090->8090/tcp   sftpgo

访问Web GUI

访问其 Web GUI。为此,只需打开本地系统浏览器并将其指向已安装 SFTPGo 的服务器或桌面 IP 地址,端口号为 8080。

例如:

http://server-ip-addres:8080

创建管理员用户

访问 Web GUI 后,它会要创建一个管理员帐户。

在这里插入图片描述

创建sftp新用户

一旦拥有了 SFTPGo 的仪表板,就可以创建一个新用户来使用任何 Web 或本地客户端(例如 Filezilla)访问存储数据。单击“用户”选项。之后点击 + 图标。

在这里插入图片描述

添加要使用的用户名和密码。如果需要,还可以添加公钥。

如果使用本地文件系统可以选择local,而其他选项(例如 AWS S3 和 Google 云存储)也可用。

在这里插入图片描述

不指定Home Dir时默认为/srv/sftpgo/data/admin1,这里保持默认。

访问用户 Web 客户端界面

在浏览器中访问以下网址,并使用新用户帐户详细信息登录

http://192.168.72.16:8080/web/client

登录界面如下:
在这里插入图片描述

在这里用户可以轻松上传和下载文件。

在这里插入图片描述

测试sftp连接

使用sftp命令测试连接

现在测试新用户,linux操作系统默认自带sftp命令,在linux客户端测试连接sftpgo服务器。

连接后可以执行help命令查看支持的参数,使用putget指令上传下载文件。

root@ubuntu:~# sftp -P 2022 admin1@192.168.72.16
The authenticity of host '[192.168.72.16]:2022 ([192.168.72.16]:2022)' can't be established.
ED25519 key fingerprint is SHA256:Op+5ORK2iLBucnxiL6xRnfPl+D+wXURVS7qOk4WeUMM.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.72.16]:2022' (ED25519) to the list of known hosts.
(admin1@192.168.72.16) Password: 
Connected to 192.168.72.16.
sftp> 

使用winscp客户端测试连接

输入在SFTPGo上创建的用户名和密码,端口使用2022。示例配置如下:
在这里插入图片描述

使用raidrive客户端测试连接,该工具支持sftp、webdav等各种连接方式。

在这里插入图片描述
本地 windows 此电脑 中可以将sftp作为本地磁盘使用
在这里插入图片描述

SFTPGo挂载为WebDav

那些想要像使用其他本地磁盘一样使用远程服务器存储文件系统的人可以在 SFTPGo 的帮助下将其挂载为 WebDav。

在 Windows 上挂载 WebDav

首先,在系统注册表中进行一些更改。按 Win+R 键并输入 regedit 打开注册表。切换到以下路径

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

现在,双击“BasicAuthLevel”,将值 1 更改为 2。按确定按钮。

重新启动 WebDav 服务:

以管理员身份运行 PowerShell 并一一键入给定的命令。

net stop webclient
net start webclient

转至此电脑或 Windows 上的我的电脑,然后从菜单中选择“映射网络驱动器”。

在这里插入图片描述

以下格式输入 SFTPGo 的地址以及端口号。

http://server-ip:8090

当它要求输入用户名和密码时,请执行此操作。
在这里插入图片描述

很快就会像系统上的任何本地驱动器一样安装该驱动器。
在这里插入图片描述

在 Linux 上挂载 WebDav

在linux客户端 安装davfs2, 以ubuntu 为例

root@ubuntu:~# apt install -y davfs2
root@ubuntu:~# mount.davfs -V

创建挂载目录

$ sudo mkdir /mnt/dav

使用 mount 命令挂载WebDAV 共享目录,提供 SFTPGo 上创建的用户名和密码

mount -t davfs -o noexec http://192.168.72.40:8090 /mnt/dav/

查看挂载结果

root@ubuntu:~# df -h|grep mnt
http://192.168.72.40:8090     1.3T  763G  509G  61% /mnt/dav

sftpgo 基于 restic 增量备份

使用restic对某台linux服务器中的/data路径下的数据执行增量备份。

在需要备份的linux服务器上安装restic,以ubuntu操作系统为例

wget https://github.com/restic/restic/releases/download/v0.16.0/restic_0.16.0_linux_amd64.bz2
bzip2 -d restic_0.16.0_linux_amd64.bz2 
mv restic_0.16.0_linux_amd64 /usr/local/bin/restic
chmod +x /usr/local/bin/restic

使用restic命令在sftpgo服务端创建存储库

root@ubuntu:~# export RESTIC_PASSWORD="123456"
root@ubuntu:~# restic init -r sftp://admin1@[192.168.72.16]:2022//restic-repo
The authenticity of host '[192.168.72.16]:2022 ([192.168.72.16]:2022)' can't be established.
ED25519 key fingerprint is SHA256:Op+5ORK2iLBucnxiL6xRnfPl+D+wXURVS7qOk4WeUMM.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
subprocess ssh: Warning: Permanently added '[192.168.72.16]:2022' (ED25519) to the list of known hosts.
(admin1@192.168.72.16) Password: 
created restic repository 81e4c7ae2d at sftp://admin1@[192.168.72.16]:2022//restic-repoPlease note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

通过restic备份linux/data/目录所有数据到sftpgo

root@ubuntu:~# export RESTIC_PASSWORD="123456"
root@ubuntu:~# export RESTIC_REPOSITORY="sftp://admin1@[192.168.72.16]:2022//restic-repo"
root@ubuntu:~# restic backup /data/
(admin1@192.168.72.16) Password: 
repository 81e4c7ae opened (version 2, compression level auto)
created new cache in /root/.cache/restic
no parent snapshot found, will read all filesFiles:        7197 new,     0 changed,     0 unmodified
Dirs:         1886 new,     0 changed,     0 unmodified
Added to the repository: 393.453 MiB (150.566 MiB stored)processed 7197 files, 395.592 MiB in 0:03
snapshot a5be14c4 saved

登录sftpgo客户端查看备份数据
在这里插入图片描述

当/data/目录数据有变化时,重复执行以上命令,会持续创建增量快照,查看历史备份快照:

root@ubuntu:~# restic snapshots
(admin1@192.168.72.16) Password: 
repository 81e4c7ae opened (version 2, compression level auto)
ID        Time                 Host        Tags        Paths
------------------------------------------------------------
a5be14c4  2023-10-21 18:11:44  ubuntu                  /data
dcda67da  2023-10-21 18:13:57  ubuntu                  /data
2eeff04f  2023-10-21 18:14:02  ubuntu                  /data
------------------------------------------------------------
3 snapshots

选择某个快照,将数据还原到本地

root@ubuntu:~# restic restore a5be14c4  --target /tmp/restor-data
(admin1@192.168.72.16) Password: 
repository 81e4c7ae opened (version 2, compression level auto)
restoring <Snapshot a5be14c4 of [/data] at 2023-10-21 18:11:44.118135197 +0800 CST by root@ubuntu> to /tmp/restor-data
Summary: Restored 9084 Files (395.592 MiB) in 0:03
root@ubuntu:~# 
root@ubuntu:~# ls /tmp/restor-data/
data

相关文章:

docker 安装 sftpgo

sftpgo 简介 sftpgo 是一个功能齐全且高度可配置的 SFTP 服务器&#xff0c;具有可选的 HTTP/S、FTP/S 和 WebDAV 支持。支持多种存储后端&#xff1a;本地文件系统、加密本地文件系统、S3&#xff08;兼容&#xff09;对象存储、Google 云存储、Azure Blob 存储、SFTP。 官…...

threejs (一) 创建一个场景

引入 npm install three import * as THREE from three;const scene new THREE.Scene();或者使用bootCDN复制对应的版本连接 <script src"https://cdn.bootcdn.net/ajax/libs/three.js/0.156.1/three.js"></script>基础知识 场景、相机、渲染器 通过…...

二分查找,求方程多解

1.暴力遍历&#xff1a; 解为两位小数&#xff0c;故0.001的范围肯定可以包含&#xff08;零点存在&#xff09; 2.均分为区间长度为1的小区间&#xff08;由于两解&#xff0c;距离不小于1&#xff09;&#xff0c;一个区间最多一个解 1.防止两边端点都为解 2&…...

代码随想录算法训练营第二十九天 | 回溯算法总结

​ 代码随想录算法训练营第二十九天 | 回溯算法总结 1. 组合问题 1.1 组合问题 在77. 组合中&#xff0c;我们开始用回溯法解决第一道题目&#xff1a;组合问题。 回溯算法跟k层for循环同样是暴力解法&#xff0c;为什么用回溯呢&#xff1f;回溯法的魅力&#xff0c;用递…...

运算方法和运算电路

一、逻辑门电路 1、逻辑门电路基础总结 2、异或运算妙用 3、逻辑常用公式 二、加法器&#xff08;重点&#xff09; 1、标志位的生成原理 2、加法器总结 三、多路门选择器&#xff0c;三态门...

计算机网络篇之TCP滑动窗口

文章目录 前言概述 前言 在网络数据传输时&#xff0c;若传输的原始数据包比较大&#xff0c;会将数据包分解成多个数据包进行发送。需要对数据包确认后&#xff0c;才能发送下一个数据包。在等待确认包的这个过程浪费了大量的时间&#xff0c;不过还好TCP引入了滑动窗口的概念…...

本地安装telepresence,访问K8S集群 Mac(m1) 非管理員

kubeconfig 一&#xff0e;安装telepresence 1.安装 Telepresence Quickstart | Telepresence &#xff08;1&#xff09;brew install datawire/blackbird/telepresence 2.配置 目录kubectl 将使用默认的 kubeconfig 文件&#xff1a;$HOME/.kube/config 创建文件夹&…...

今日思考(2) — 训练机器学习模型用GPU还是NUP更有优势(基于文心一言的回答)

前言 深度学习用GPU&#xff0c;强化学习用NPU。 1.训练深度学习模型&#xff0c;强化学习模型用NPU还是GPU更有优势 在训练深度学习模型时&#xff0c;GPU相比NPU有优势。GPU拥有更高的访存速度和更高的浮点运算能力&#xff0c;因此更适合深度学习中的大量训练数据、大量矩阵…...

8.3 C++ 定义并使用类

C/C语言是一种通用的编程语言&#xff0c;具有高效、灵活和可移植等特点。C语言主要用于系统编程&#xff0c;如操作系统、编译器、数据库等&#xff1b;C语言是C语言的扩展&#xff0c;增加了面向对象编程的特性&#xff0c;适用于大型软件系统、图形用户界面、嵌入式系统等。…...

Git学习笔记——超详细

Git笔记 安装git&#xff1a; apt install git 创建版本库&#xff1a; git init 添加文件到版本库&#xff1a; git add 文件 提交文件到仓库&#xff1a; git commit -m “注释” 查看仓库当前的状态信息&#xff1a; git status 查看修改内容和之前版本的区别&am…...

Locust负载测试工具实操

本中介绍如何使用Locust为开发的服务/网站执行负载测试。 Locust 是一个开源负载测试工具&#xff0c;可以通过 Python 代码构造来定义用户行为&#xff0c;避免混乱的 UI 和臃肿的 XML 配置。 步骤 设置Locust。 在简单的 HTTP 服务上模拟基本负载测试。 准备条件 Python…...

关闭mysql,关闭redis服务

1. 关闭redis服务&#xff1a; 查询redis安装目录&#xff1a; whereis redis which redis find / -name redis 关闭redis服务&#xff1a; redis-cli -h 127.0.0.1 -p 6379 auth 输入密码 shutdown 关闭redis服务 2. 关闭mysql服务&#xff1a; 查询mysql安装目录&…...

微机原理:汇编语言语句类型与格式

文章目录 壹、语句类型1、语句分类2、常用伪代码和运算符2.1数据定义伪指令2.1.1字节定义伪指令DB&#xff08;8位&#xff09;2.1.2字定义伪指令DW&#xff08;16位&#xff09;2.1.3双字节伪指令DD2.1.4 多字节定义DF/DQ/DT&#xff08;了解&#xff09; 2.2 常用运算符2.2.1…...

iOS Flutter Engine源码调试和修改

iOS Flutter Engine源码调试和修改 1. 前提:2. 步骤&#xff1a;3. 参考资料 1. 前提: 已将成功安装deop_tools工具已经通过gclient命令同步好flutter engine源码 2. 步骤&#xff1a; 进入engine/src目录 创建flutter engine构建文件 真机文件debug模式&#xff1a; ./flu…...

Java日志系统之Log4j

目录 Log4J Log4j的简单使用 日志级别 Log4j的组件 Loggers Appenders Layout Layout格式 设置配置文件加载 配置文件解析 Log4J 是Apache下开源的日志框架 Log4j的简单使用 Testpublic void testLog4J(){Logger logger Logger.getLogger(Log4jTest.class);logger…...

Windows11系统安装WSL教程

WSL&#xff0c;全称Windows Subsystem for Linux&#xff0c;是微软官方提供的可以在Windows上直接运行的Linux环境&#xff0c;包括大多数命令行工具、程序和应用&#xff0c;由系统底层虚拟机平台支持。 开启相关服务 1、控制面板-启用或关闭Windows功能 2、勾选以下两个…...

总结一下vue中v-bind的常见用法

文章目录 &#x1f415;前言&#xff1a;&#x1f3e8;简述一下v-bind命令&#x1f9f8;其它写法1.还是当成字符串&#x1f993;其它写法2.当成对象来使用 &#x1f415;前言&#xff1a; 本篇博客主要总结一下v-bind命令在vue中的常见用法&#xff08;看完即懂&#xff09; …...

全面超越AutoGPT,面壁智能联合清华NLP实验室开源大模型「超级英雄」XAgent

近日&#xff0c;国内领先的人工智能大模型公司面壁智能又放大招&#xff0c;联合清华大学 NLP 实验室共同研发并推出大模型「超级英雄」——XAgent。 通过任务测试&#xff0c;XAgent 在真实复杂任务的处理能力已全面超越 AutoGPT。 现已在 GitHub 正式开源&#xff0c;地址 …...

springBoot--web--http缓存机制测试

springBoot--web--http缓存机制测试 前言1、多端内容适配基于请求头内容协商&#xff08;默认开启&#xff09;基于请求参数内容协商&#xff08;需要开启&#xff09; 2、默认返回json数据3、设置返回xml数据导入jackson-dataformat-xml包在类文件中添加注解 JacksonXmlRootEl…...

免费活动】11月4日敏捷武林上海站 | Scrum.org CEO 亲临现场

活动介绍 过去的几年里&#xff0c;外界的风云变幻为我们的生活增添了一些不一样的色彩。在VUCA世界的浪潮里&#xff0c;每一个人都成为自己生活里的冒险家。面对每一次的变化&#xff0c;勇于探索未知&#xff0c;迎接挑战&#xff0c;努力追逐更好的自己。 七月&#xff0…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...