HELLO NAS BLOG

上班摸鱼神器!在NAS部署 genact,让终端看起来很忙的样子

genact 是一款有趣的命令行模拟工具,可以模拟编译、下载、内存转储等忙碌场景。本文介绍如何在 NAS 上通过 Docker Compose 部署 genact,并使用 SSH 在终端运行,轻松让命令行看起来很忙。

点赞 + 关注 + 收藏 = 学会了

💡整理了一个 NAS 专属玩法专栏,感兴趣的工友可以戳这里关注 👉 《NAS邪修》

genact 是一个有趣的命令行小工具,可以在终端里模拟编译、下载、内存转储等“忙碌”场景。它不会真的执行这些耗时任务,适合录屏、演示,或者单纯让终端看起来热闹一点。也非常适合程序员上班摸鱼假装很忙😊

本文以绿联 NAS 为例,用 Docker Compose 部署,并介绍基础用法。

1、部署方法

打开绿联 NAS 的「文件管理」应用,在 docker 文件夹中新建一个 genact 文件夹,用于存放项目配置。

01

打开「Docker」应用,切换到「项目」面板并点击「创建」,按下面的信息填写:

  • 项目名称:genact
  • 存放路径:选择刚才创建的 /docker/genact

02

在 Compose 配置中粘贴以下内容:

services:
  genact:
    image: svenstaro/genact:latest
    container_name: genact
    stdin_open: true
    tty: true
    restart: "no"

点击创建或部署,等待项目启动。在「容器」面板中看到 genact 状态为“运行中”,就说明部署完成。这个项目不需要映射端口,也不需要挂载数据目录。

03

需要注意,genact 是命令行程序,不提供 NAS 网页服务,所以部署后没有 NAS_IP:端口 页面可以打开。可以在 Docker 的容器日志中查看后台输出;如果想在自己电脑的终端里实时看到效果,继续按下面的方法操作。

接下来,在电脑通过 SSH 连接 NAS 的步骤不展开说明,推荐按照这篇文章操作:SSH 连接绿联 NAS。

连上 NAS 后,执行:

sudo docker exec -it genact /app/genact

如果提示输入密码,输入 NAS 账户密码即可。输入时终端不会显示字符,这是正常现象。

输入完密码后,会看到当前 SSH 终端启动一个 genact,让模拟输出直接显示在电脑终端中。

04

genact 进阶玩法

其实 genact 还有很多配置项可以玩,这是 genact 的仓库,里面写了各个参数的玩法。

https://github.com/svenstaro/genact

genact 支持通过参数选择模拟场景、调节速度和设置开场输出。

参数前的短写和长写效果相同,例如 -m 等同于 --modules,-s 等同于 --speed-factor。

-m:选择模拟场景

默认情况下,genact 会从可用模块中随机运行场景。使用 -m 可以只运行指定模块,例如:

sudo docker exec -it genact /app/genact -m cc

cc 会模拟 C 语言编译过程,输出类似编译命令和文件名的内容。genact 目前提供以下场景:

模块 模拟输出内容
ansible Ansible 配置任务,显示主机和任务执行状态
bootlog 系统启动日志
botnet 僵尸网络节点连接和任务状态
bruteforce 哈希密码破解进度
cargo Rust 项目的依赖下载、编译和完成信息
cc C 语言编译命令和目标文件
composer Composer 依赖安装和自动加载信息
cryptomining 加密货币挖矿进度
docker_build Docker 镜像构建步骤
docker_image_rm Docker 镜像删除输出
download 文件下载过程和进度
julia Julia 包更新过程
kernel_compile Linux 内核编译过程
memdump 随机内存地址转储内容
mkinitcpio mkinitcpio 生成 initramfs 镜像的输出
rkhunter rkhunter rootkit 检查结果
simcity 模拟《模拟城市》的加载状态提示
terraform Terraform 云资源创建、修改和销毁状态
uv Python uv 环境同步、依赖下载和安装信息
weblog 类似 Nginx 的 Web 服务器访问日志
wpt Web Platform Tests 浏览器测试进度和结果

以上内容都是 genact 生成的模拟输出,不会真的编译代码、安装依赖、扫描系统或操作 Docker。想在 NAS 上查看当前版本支持的模块名称,可以运行:

sudo docker exec -it genact /app/genact --list-modules

-s:加快模拟速度

-s 是 --speed-factor 的简写,默认速度为 1。把数值调大可以加快场景进度,例如设为 5 倍:

sudo docker exec -it genact /app/genact -s 5

-i:让开场输出立即出现

-i 是 --instant-print-lines 的简写,用来指定开头有多少行跳过等待、立即输出。比如让前 20 行快速出现:

sudo docker exec -it genact /app/genact -i 20

开场这段快速输出之后,程序会按正常速度继续;也可以配合 -s 加快后续进度。

同时使用 -m、-s 和 -i

参数可以组合使用。下面这条命令只运行 C 编译模拟,把速度设为 5 倍,并让开头 20 行立即输出:

sudo docker exec -it genact /app/genact -m cc -s 5 -i 20

查看完整参数说明,可以运行:

sudo docker exec -it genact /app/genact --help

查看日志与停止

在 Docker 的容器日志页面可以查看 Compose 容器后台进程的输出。也可以通过 SSH 查看:

sudo docker logs -f genact

按 Ctrl+C 会退出日志查看,不会停止容器。上面用 docker exec 启动的那份 genact,按 Ctrl+C 会结束这次模拟;Compose 容器仍会继续运行。要停止整个容器,可以在 Docker 的容器页面关闭它。


以上就是本文的全部内容啦,你有好玩的镜像推荐吗?欢迎在评论区留言讨论!

想了解更多 NAS 玩法记得关注《NAS邪修》👏

往期推荐:

点赞 + 关注 + 收藏 = 学会了

继续看看其他折腾记录

更多 NAS、自托管服务和工具分享都在博客列表。

返回博客

SEARCH

搜索文章

输入关键词开始搜索。