WebFileManager
服务器管理工具,目前有文件管理器、进程监控、计划任务、webSSH、多主机管理等,准备在自己服务器上用,后续会加入更多运维相关,本项目后端python+flask,前端使用layui+jquery,代码在线编辑使用codemirror,webSSH后端使用paramiko前端xterm
更新日志
2018/10/22
1.新增进程管理.
2.新增计划任务(使用datatime计算时间,threading.Timer定时执行).
2018/10/24
1.新增了一个很low的webssh
2018/10/26
1.新增资源监控,可以记录指定时间内的资源使用情况
2018/10/28
1.新增登陆验证,原本想存在数据库里的,写完了又觉得没必要,暂时放在config里了,等以后抽时间加个面板设置的功能吧
2018/11/3
1.新增远程主机管理,多主机批量执行shell,支持设定以root身份执行shell(目前很简陋,后续会添加更多功能)
2018/12/2
1.文件管理器批量操作时增加提示
2.加上了文件批量剪切和复制
3.压缩了后台传递进程信息的大小,消耗流量仅为原先的约1/6,且分段生成前端页面,前端内存占用大幅减少
4.新增了文件管理器的图片预览功能(预览时图片为预览图,原图请点击下载)
功能介绍
1.文件管理
兼容windows和linxu的文件管理器,目前有文件的批量压缩、下载、重命名、文件内容在线编辑等.
文件管理器中进行下载时,若下载的是文件,将会直接下载,若为目录,则会压缩为zip后下载
文件后缀为.zip
,.gz
,.tar
的,可以在线解压
并提供一个批量文件操作的按钮,支持跨文件夹操作,后续可能会加入更多功能
2.进程监控
显示CPU、内存、磁盘状态,并实时显示网速
同时显示了进程以及网络进程,点击进程名可以查看进程详细信息
3.计划任务
可以设定以秒为单位的循环执行,也可以设定规则,如每周三的12:50:30,每月的23号15:30:00
4.shell
一个是个比较low的webSSH,最近可能没时间去完善这一块
还有一个是多主机批量执行shell,支持root身份运行(目前很简陋,后续会添加更多功能)
5.资源监控
本质上就是一个定时储存服务器资源使用情况的定时任务,前端请求到储存的数据后解析,最后用echarts生成折线图,为了尽量少的占用服务器资源,解析操作都是在网页前端进行的。
项目截图
文件管理部分截图
进程监控部分截图
计划任务部分截图
SSH部分截图
资源监控部分截图(仍在完善中)
使用说明
flask
,chardet
,datetime
, paramiko
,pillow
运行本项目需要自行pip安装route目录下是视图函数,目前有:
1.file.py
,用来处理文件管理器的一些操作,
2.echarts
,用来完成前端图表的json传值,
3.process.py
,用来传递进程信息,
4.setTask.py
,设定、查询、删除计划任务,但是真正的计划任务操作是/lib/task.py
来完成的,
5.webssh.py
,处理webSSH,多主机批量执行shell,先凑合用着,以后改进,
6.controlPanel.py
,处理资源监控的视图函数
1.extract.py
,处理解压文件,目前只有.zip,.gz,.tar,如果有需要,可以在这添加方法,
2.task.py
,用于处理定时任务,这里我的实现方式是根据传入的定时类型和设定时间,计算出距离下一次符合时间的秒数,然后调用threading的Timer定时,定时函数执行时重新计算下一次时间,以此反复,
3.vieCode.py
,生成验证码,这份不是我自己写的,是从宝塔面板的代码里面抄来的= =,准备在写登录时用,目前暂时没用到
4.writeRes.py
,定时进行资源监控,并修改部分设置
config目录用于配制程序
config.py
,里面定义了以下内容:
1.文件管理器应该从那个目录开始显示,一般为'/'就好。
2.资源监控默认开关/最大储存时间/前端默认显示时间/后台记录间隔。
sqlitedb是数据库目录
sqlitedb.py
,里面目前只有资源记录,暂时没有加入其他功能