栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

vsftp容器搭建+go开发web用户管理界面(更新于2022.02.23)

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vsftp容器搭建+go开发web用户管理界面(更新于2022.02.23)

目录
  • 前提
  • 部署
        • 1、启动容器
        • 2、安装前端和配置备份
  • 总结
      • 部署说明
      • 账号说明
      • WEB界面说明
      • 数据存放说明
      • 数据备份说明
      • 数据删除说明
      • 数据限制说明

关于vsftp全部文章:
1、vsftp服务搭建(虚拟账号+被动访问)
2、通过公网登录vsftp服务
3、vsftp容器搭建+go开发web用户管理界面(更新于2022.02.23)

前提

vsftp采用虚拟账号+被动访问配置
默认账号密码:company/Tenez.cn

1、磁盘划分完成

df -h
部分:
/dev/mapper/DB-DBlv     1007G   36G  921G   4% /u01

2、安装docker,配置存储磁盘

cat /usr/lib/systemd//system/docker.service |grep ExecStart
部分:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/u01/docker/data
部署 1、启动容器

创建vsftp容器

映射的目录根据实际情况修改,我的磁盘划分挂载位置是在/u01,所以映射的是/u01/目录下

docker run -id  --name=vsftp --network=host --privileged=true  -v /u01/vsftp/data:/ftp/data swr.ap-southeast-3.myhuaweicloud.com/softwares/vsftp:3.2 /usr/sbin/init

创建mysql容器
这里的数据库只是一个记录账号的作用,不存用户文件,没有做持久化

docker run -itd --name vsftp-mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=password mysql:8

现在我们可以使用xftp等ftp工具,测试链接下:
ip:宿主机ip
端口号:10021
用户名:company
密码:Tenez.cn

2、安装前端和配置备份

把vsftp-web3.0.zip安装包解压后存放到宿主机的/u01/vsftp/data目录下
目录层级:

ls /u01/vsftp/data/vsftp-web3.0

2.sh  ftp.go  ftp.sql  go.mod  go.sum  nohup.out  pages  statics  templates

把backupdata.zip安装包解压后存放到宿主机的/u01/vsftp/data目录下
目录层级:

ls /u01/vsftp/data/backupdata/

backup.sh

进入到vsftp容器内部,检查crond定时任务,每30分钟将打包备份一次容器内部/ftp/company目录下的所有文件,7天滚动保留

docker exec -it vsftp bash
crontab -l

30 * * * * sh /ftp/data/backupdata/backup.sh >> /ftp/data/backupdata/backupdata.log 2>&1

进入到vsftp容器内部,运行前端go程序
运行之前需要修改数据库连接信息,把ip修改成实际数据库ip

cd /ftp/data/vsftp-web3.0
cat ftp.go |grep mysql

			db, err := gorm.Open("mysql", "root:password@(172.xx.xx.xx:13306)/db?charset=utf8mb4&parseTime=True&loc=Local")
			db, err := gorm.Open("mysql", "root:password@(172.xx.xx.xx:13306)/db?charset=utf8mb4&parseTime=True&loc=Local")
			db, err := gorm.Open("mysql", "root:password@(172.xx.xx.xx:13306)/db?charset=utf8mb4&parseTime=True&loc=Local")

nohup go run ftp.go &

现在浏览器访问:http://172.xx.xx.xx:9090将得到如下界面

总结 部署说明

使用容器部署

容器名称映射目录端口号服务
vsftp/u01/vsftp/data:/ftp/data主机网络。主端口号9090,10021ftp服务,用于上传下载文件
vsftp-mysql无13306:3306数据引擎服务,用于存放ftp账号密码信息

*注:以下提到的路径全部为容器内部路径

账号说明
账号名称密码权限
companyTenez.cn可以查看所有ftp账户数据
WEB界面说明

FTP管理:http://172.xx.xx.xx:9090,可以增删账号(只适合用于内网)

数据存放说明

全部ftp用户数据路径:/ftp/company/

单个ftp账号数据路径:/ftp/company/账号名称

ftp关于账号密码信息:vsftp-mysql 容器中的db数据库ftpuserlist表

数据备份说明

每30分钟会备份所有账号数据到/ftp/data/backupdata目录,滚动保留7天

数据删除说明

1、当一个ftp账号被删除后,账号内的数据将不会被清除,重新创建相同账号后将恢复数据

2、当ftp账号被删除后,已创建成功的ftp链接将不会被强制中断,仍然可以传输数据

数据限制说明

1、每个账号最大速率5m/s

2、最大建立连接400个(指定了端口号范围10180-10580)

3、每个账号之间相互看不到数据(除了管理员账号)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/904627.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号