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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/114700.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Git的入门教程(附GitHub和Gitee的使用方法)

一. Git 概述 Git是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种项目。Git易于学习、占地面积小、性能极快。它具有廉价的本地库&#xff0c;方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCas…

SpringMVC之全局异常拦截器

在SpringMVC自动装配核心类之WebMvcAutoConfiguration内部实例化EnableWebMvcConfiguration过程中会触发其父类WebMvcConfigurationSupport内部初始化HandlerExceptionResolver。 1.WebMvcConfigurationSupport public class WebMvcConfigurationSupport implements Applicat…

2434: 【区赛】[慈溪2013]统计方格

题目描述 给出一张 n 行 m 列仅由黑白方格组成的黑白图片&#xff08;行从上到下 1 到 n 编号&#xff0c;列从左到右 1 到 m 编号&#xff09;。如下图是一张由 17 行 18 列方格构成的黑白图片&#xff0c;图片中的任意一个方格要么是白色&#xff0c;要么是黑色。 仔细观察这…

Python —— UI自动化之Page Object模式

1、Page Object模式简介 1、二层模型 Page Object Model&#xff08;页面对象模型&#xff09;, 或者也可称之为POM。在UI自动化测试广泛使用的一种分层设计 模式。核心是通过页面层封装所有的页面元素及操作&#xff0c;测试用例层通过调用页面层操作组装业务逻辑。 1、实战 …

springBoot--web--函数式web

函数式web 前言场景给容器中放一个Bean&#xff1a;类型是 RouterFunction<ServerResponse>每个业务准备一个自己的handler使用集合的时候加注解请求的效果 前言 springmvc5.2 以后允许我们使用函数式的方式&#xff0c;定义web的请求处理流程 函数式接口 web请求处理的…

【Dockerfile镜像实战】构建LNMP环境并运行Wordpress网站平台

这里写目录标题 一、项目背景和要求二、项目环境三、部署过程1&#xff09;创建自定义网络2&#xff09;部署NginxStep1 创建工作目录并上传相关软件包Step2 编写Dockerfile文件Step3 编写配置文件nginx.confStep4 创建nginx镜像Step5 运行容器 3&#xff09;部署MysqlStep1 创…

Spring Cloud Alibaba Seata 实现分布式事物

Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案 Seata 官网&#xff1a;https://seata.io/zh-cn/ Spring Cloud Alibaba 官…

Leetcode—2652.倍数求和【简单】

2023每日刷题&#xff08;四&#xff09; Leetcode—2652.倍数求和 实现代码 int sumOfMultiples(int n){int ans 0;int i 1;for(; i < n; i) {if((i % 3 0) || (i % 5 0) || (i % 7 0)) {ans i;}}return ans; }测试结果 之后我会持续更新&#xff0c;如果喜欢我的文…

STM32,我想看单片机上的外设时钟,我怎么看?

一&#xff1a;在工程中加入rcc文件 首先需要加载我们的时钟函数的文件 stm32f10x_rcc.h 和 stm32f10x_rcc.c 文件 二&#xff1a;查看文件 在h头文件 尾部&#xff0c;有我们这个总线的函数 在函数体内&#xff0c;有我们这个宏定义的 外设时钟&#xff0c;我们拿就行了 APB2_…

MapReduce编程:join操作和聚合操作

文章目录 MapReduce 编程&#xff1a;join操作和聚合操作一、实验目标二、实验要求及注意事项三、实验内容及步骤 附&#xff1a;系列文章 MapReduce 编程&#xff1a;join操作和聚合操作 一、实验目标 理解MapReduce计算框架的分布式处理工作流程掌握用mapreduce计算框架实现…

Git Bash(一)Windows下安装及使用

目录 一、简介1.1 什么是Git&#xff1f;1.2 Git 的主要特点1.3 什么是 Git Bash&#xff1f; 二、下载三、安装3.1 同意协议3.2 选择安装位置3.3 其他配置&#xff08;【Next】 即可&#xff09;3.4 安装完毕3.5 打开 Git Bash 官网地址&#xff1a; https://www.git-scm.com/…

codeforces (C++ Morning)

题目&#xff1a; 翻译&#xff1a; 思路&#xff1a; 1、要将四位数显示&#xff0c;每次操作可以选择移动光标&#xff08;移动到相邻的位置&#xff09;或者显示数字&#xff0c;计算最少需要多少次操作。 2、用flag表示当前光标位置&#xff0c;sum为记录操作次数&#…

开源软件-禅道Zentao

禅道Zentao 简介漏洞复现SQL注入漏洞**16.5****router.class.php SQL注入** **v18.0-v18.3****后台命令执行** 远程命令执行漏洞&#xff08;RCE&#xff09;后台命令执行 简介 是一款开源的项目管理软件&#xff0c;旨在帮助团队组织和管理他们的项目。Zentao提供了丰富的功能…

基于FPGA的图像拉普拉斯变换实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a vivado2019.2 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 202…

【Java基础面试四十一】、说一说你对static关键字的理解

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;说一说你对static关键字…

2525.根据规则将箱子分类/并查集/动态规划

2525. 根据规则将箱子分类 - 力扣&#xff08;LeetCode&#xff09; 给你四个整数 length &#xff0c;width &#xff0c;height 和 mass &#xff0c;分别表示一个箱子的三个维度和质量&#xff0c;请你返回一个表示箱子 类别 的字符串。 如果满足以下条件&#xff0c;那么…

《数据结构与算法之美》读书笔记1

Java的学习 方法参数多态&#xff08;向上和向下转型&#xff09; 向上转型&#xff1a; class Text{public static void main(String[] args) {Animals people1 new NiuMa();people1.eat1();//调用继承后公共部分的方法&#xff0c;没重写调用没重写的&#xff0c;重写了调…

基于Django与深度学习的股票预测系统 计算机竞赛

文章目录 0 前言1 课题背景2 实现效果3 Django框架4 数据整理5 模型准备和训练6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于Django与深度学习的股票预测系统 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff…

Ubuntu桌面环境的切换方法

你在找它吗&#xff1f; 国内麒麟、深度等系统虽然界面更炫&#xff0c;但——软件仓库与Ubuntu官方已不兼容。国内系统遇到稳定性问题&#xff0c;还是得拿Ubuntu做参照。今天本来介绍下这款Linux桌面。 为什么在 Ubuntu 上考虑 LXQt&#xff1f; 性能&#xff1a;LXQt设计为…

计算机网络-计算机网络体系结构-传输层

目录 一、UDP 二、TCP 特点 首部格式 连接管理 可靠传输 流量控制(点对点) 拥塞控制(全局) 三、拥塞控制算法 慢开始&拥塞避免 快重传&快恢复 功能一&#xff1a;提供进程与进程之间的逻辑通信 功能二&#xff1a;复用和分用 功能三&#xff1a;对收到的报…