Last updated on:March 14, 2023 am

自己写的一个批量管理linux screen的工具screenctl,支持批量创建删除,命令执行,Web UI管理等功能。(Collaborators wanted)

好吧,Web UI 还没做出来。🤣

1 安装

# 安装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 协议 ,转载请注明出处!

内核Fuzz技巧与备忘 Previous
syzkaller安装与使用 Next

 TOC

载入天数... 载入时分秒...