当前位置:网站首页>vsftp容器搭建+go开发web用户管理界面(更新于2022.02.23)
vsftp容器搭建+go开发web用户管理界面(更新于2022.02.23)
2022-08-03 01:57:00 【阳光很暖吧】
关于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:[email protected](172.xx.xx.xx:13306)/db?charset=utf8mb4&parseTime=True&loc=Local")
db, err := gorm.Open("mysql", "root:[email protected](172.xx.xx.xx:13306)/db?charset=utf8mb4&parseTime=True&loc=Local")
db, err := gorm.Open("mysql", "root:[email protected](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,10021 | ftp服务,用于上传下载文件 |
vsftp-mysql | 无 | 13306:3306 | 数据引擎服务,用于存放ftp账号密码信息 |
*注:以下提到的路径全部为容器内部路径
账号说明
账号名称 | 密码 | 权限 |
---|---|---|
company | Tenez.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、每个账号之间相互看不到数据(除了管理员账号)
边栏推荐
猜你喜欢
无法启动服务 错误 193 0xc1
JVM internal structure and various modules operation mechanism
容联云发送验证码
Kubernetes:(八)调度约束和故障排查
236. The binary tree in recent common ancestor
新库上线 | CnOpenDataA股上市公司董监高信息数据
torchvision.datasets.ImageFolder使用详解
Greenplum database failure analysis, can not listen to the port
5.软件测试-----自动化测试
韦东山 数码相框 项目学习(五)libjpeg-turbo的移植
随机推荐
12-security退出.md
[QNX Hypervisor 2.2用户手册]10 虚拟设备参考
11-security认证.md
能添加任意贴图超级复布局的初级智能文本提示器(超级版)
部门之间,互不信任正常吗?(你是否遇到过)
【Objective-C语言中的@property增强】
VS2010 组件列表与对应名称
10-security登录
有趣简单的M2处理器性能实验:Swift与C代码执行速度的比较
如何让优炫数据库开机自启
【Swoole系列3.3】单进程管理Process
公司代码学习笔记
lombok 下的@Builder和@EqualsAndHashCode(callSuper = true)注解
[Example构造方法增加notNull参数,默认false,允许值为null,值为null的时候不加入到条件中
项目管理到底管的是什么?
企业云成本管控,你真的做对了吗?
iNFTnews | 元宇宙的潜力:一股推动社会进步的力量
LVS-NAT模式【案例实验】
10大领域5大过程47子过程快速记忆
IDEA基本使用-创建和删除项目