Last updated on:March 14, 2023 am
自己写的一个批量管理linux screen的工具screenctl,支持批量创建删除,命令执行,Web UI管理等功能。(Collaborators wanted)
好吧,Web UI 还没做出来。🤣
1 安装
INFO:
安装
# 安装screen
sudo apt install screen
# 安装screenctl (刚上传pypi不久,可能其他源还没有更新)
pip install screenctl -i https://pypi.org/simple
screenctl -h
查看帮助
usage: screenctl [-h] [-c CONF] [-v] action
screenctl 0.0.4, Controller for screen
positional arguments:
action create, delete, stat, server
optional arguments:
-h, --help show this help message and exit
-c CONF, --conf CONF path to configuration
-v, --verbose show verbose output
2 使用
- 批量创建
# 批量创建screen并按照指定配置文件执行一条命令(常用于Fuzz)
screenctl create -c job.json
# job.json示例如下:
{
"screen_name1": "echo \"name1\" >> name1.log",
"screen_name2": "timeout 12h /PATH/TO/afl-fuzz -i in -o out PROGRAM ARGS @@",
"screen_name3": "ping -c 100 baidu.com"
}
# 批量查看screen状态
screenctl stat -c job.json
- 批量删除
# 批量删除job.json中的所有窗口
screenctl delete -c job.json
# TODO: 支持自定义删除
- Web UI (TODO),抽时间写 🕊🕊🕊
# TODO: 启动Web UI来批量管理screen,界面类似于supervisor
# 支持UI界面批量/单独操作screen的启动与删除,以及其中的执行命令和输出回显
screenctl server -c job.json
# 🕊咕子咕子
3 实现原理
批量管理模块
调用screen
罢了hhh
# 创建screen
screen -dm NAME
# 在screen中执行命令
screen -x -S NAME -X stuff CMD
# 删除screen
screen -r NAME -X quit
To be completed
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!