我有时候觉得自己像个互联网乞丐,白天在各种平台缝隙里翻找 token,还特意写程序监控那些便宜渠道的动静。像是在废墟里捡硬币,又像是在赛博街头蹲守一场随时会消失的施舍。 这件事想起来有点好笑,笑完又觉得很无可奈何。明明只是一些额度、一些调用次数、一些看不见摸不着的数字,却能把人折腾得像在求生。 当然,也不是说真的穷到活不下去。更莫名其妙的是,基金每天亏掉的钱,已经够买好几个 Team 会员了。 赛博时代的精神分裂。不是多缺钱,可能只是缺一种“我没有被世界白嫖”的安全感。 11 个帖子 - 10 位参与者 阅读完整话题
前言 目前我把游戏分别放在本地 D:\game 和NAS的 G:\game (映射盘符)上运行(主要是gal和一些SLG太占空间了,又不想删)。长时间后, Local,Roaming,LocalLow 里会有各种游戏生成的存档和配置文件目录。 删游戏时这些目录并不会自动消失,AppData 越来越臃肿,想手动清理又怕删错,备份更是无从下手 于是我写了一套 PowerShell 脚本: 实时监控文件夹创建,自动记录游戏路径和存档位置,并在确认后将存档迁移到统一目录,在原位置留下符号链接 。这样既能把存档集中管理,又能让 AppData 保持干净。不过,NAS 映射盘符是整个过程里最大的坑(但大多佬们似乎用不到)。本文将分享我从“映射失败”到“稳定挂载”的全过程,以及脚本在中文转码、路径匹配、去重、队列管理等方面踩过的坑和最终方案。 而且我现在的环境很特殊:NAS 和主机用网线直连,主机通过 ICS 让 NAS 共享校园网。下一篇博客会补充 NAS 实战中的更多内容(为此我花了一周在学习网络通信协议)。 手动查找并迁移已有文件 1. 按修改时间查找文件 如果知道文件大概的修改时间范围,可以用以下命令快速定位: Get-ChildItem -Path "D:\game" -Recurse -File | Where-Object { $_.LastWriteTime -ge "2026-06-01 10:40" -and $_.LastWriteTime -le "2026-06-01 11:00" } 找到后根据完整路径判断属于哪个游戏,然后手动复制存档到备份目录(例如 D:\GameSaves\manual )。 2. 批量迁移脚本(BAT 示例) 对于大量已知映射关系的配置文件,可以写一个批处理脚本。 注意:BAT 脚本如需输出中文,必须保存为 ANSI(GBK) 编码;而给 AI 或代码库看的脚本建议用 UTF-8。 @echo off set SRC1=C:\Users\admin\AppData\Local\GameA\Save set DST1=D:\GameSaves\GameA xcopy "%SRC1%" "%DST1%" /E /I /Y set SRC2=C:\Users\admin\AppData\LocalLow\GameB set DST2=D:\GameSaves\GameB xcopy "%SRC2%" "%DST2%" /E /I /Y echo 迁移完成 pause NAS 盘符映射 1. 在 Windows 中映射 NAS 文件夹 我的 NAS 型号是绿联 Dxp4800plus,通过 ICS 共享网络,设置的私网IP 为 192.168.137.20 。我把所有游戏放在 NAS 共享文件夹 ACG (原名 acg资源 ,后来改名)下,并映射到主机的 G: 盘。 正确映射方法(一定要勾选“登录时重新连接”) : 右键“此电脑” → “映射网络驱动器”。 驱动器选择 G: ,文件夹选择 NAS设备\ACG 必须勾选"登录时重新连接" ,不然后面开机自启会出问题。 用校园网连接NAS时,在 网络 可能会找不到设备,需要先进入 WLAN 把校园网从专用切换为公用,再在 网络 里重新转为专用,才能发现 NAS 设备。我现在也没搞清楚根本原因是什么,如果佬们知道正确的修改方法请告诉我。 2. 几个踩坑点 踩坑 1:修改共享名称后映射失效 当我把共享文件夹从 acg资源 改名为 ACG 后,就无法进入之前映射好的 G: 盘了。这是因为映射驱动器指向的远程路径是 \\...\acg资源 ,而实际共享已不存在。 解决方法 : 先删除旧映射G盘 按照上述步骤重新映射到新文件夹 ACG 一旦修改 NAS 共享名,必须同时更新所有客户端的映射,并更新脚本中的路径 踩坑 2:到底该用盘符(G:)还是 UNC 路径(\IP\share)? 这是困扰我最久的问题(主要是不停打开游戏和脚本测试,还要不断删除对应的文件和json内容)。 脚本需要匹配运行中游戏的可执行文件路径,而 Get-Process 返回的 Path 属性 在不同启动方式下表现不一致 : 如果通过资源管理器双击 G:\game\xxx.exe 启动,进程路径有时是 G:\game\... (盘符形式)。 如果通过 \\192.168.137.20\ACG\game\xxx.exe 直接启动,进程路径是 UNC。 有些游戏启动器可能会强制转换路径。 我最初按 UNC 路径 \\192.168.137.20\ACG\game 设置 $gameRoot ,但实际运行时却匹配不到(因为进程路径是 G:\game 开头)。后来改为 G:\game 就成功了,所以最稳妥的做法是 把盘符和UNC都配置上 ,让脚本自己去匹配。 不知道为什么,在 powershell 中 cd \\192.168.137.20\ACG\game 却没有问题 踩坑 3:开机自启时 G 盘还未连上 设置任务计划程序开机启动脚本后,发现脚本虽然运行了,但始终检测不到 NAS 上的游戏。日志显示 [注意] 未检测到游戏进程 。 原因:用户登录后,系统需要几秒钟来恢复网络驱动器。而脚本在登录瞬间就执行了,此时 G: 盘还不存在。 解决方案 :在任务计划程序的触发器设置中,添加 “延迟任务时间 30 秒” (或更长,如 60 秒),这样脚本会等待网络和映射完全准备好再启动。 实现自动化监控脚本 核心需求: 监控三个存档常用目录: %LOCALAPPDATA% 、 %APPDATA% 、 %USERPROFILE%\AppData\LocalLow (即 Local,Roaming,LocalLow ) 当有新文件夹被创建(某个游戏第一次生成存档)时,自动记录 同时检查本地 D:\game 和 NAS 映射的 G:\game 路径,检测当前运行的游戏进程并将其 exe 路径以 Base64 存入队列 1. 设置 PowerShell 执行策略 首次运行脚本前,需要允许执行本地脚本: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 2. 监控脚本(Watch-GameSaves.ps1) 以下为脚本核心结构(完整代码略去,仅说明逻辑): 定义监控根目录、排除文件夹列表。 使用 FileSystemWatcher 监视 $watchPaths 下的文件夹创建事件。 事件触发后: 跳过已存在的连接点或排除文件夹。 延迟 3 秒,给游戏时间完成写入。 获取正在运行的进程,匹配路径是否以 D:\game 或 G:\game 开头。 将匹配到的第一个游戏 exe 路径转为 Base64(避免 JSON 中的转义和乱码问题)。 将存档路径、游戏 exe Base64、时间等信息写入 pending.json 。 3. 解决中文乱码:Base64 转码 因为游戏路径中可能出现中文(如“除灵猎人”),直接存储到 JSON 会导致编码混乱(而且很难解决,不论将文件保存为UTF-8还是GBK都不行,因为本质是在action中进行的解码)。解决方法是将 exe 路径进行 Base64 编码: { "srcPath": "C:\\Users\\admin\\AppData\\Local\\NebelTR", "time": "2026-06-04 15:28:26", "gameExeBase64": "RDpcZ2FtZVxSUEdcQkJR5aSn5aW944GNXOmZpOeBteeMjuS6ulzpmaTngbXnjI7kurotQ04tMS4xMlxHYW1lLmV4ZQ==", "dirName": "NebelTR", "remark": "" } 使用时通过 [System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($base64)) 解码即可得到原始中文路径。 4. 避免重复记录已处理目录 某个存档目录已经成功迁移并创建了符号链接后,之后游戏再次运行,监控脚本又检测到同一目录的“创建”事件,就会导致重复记录。 解决方法 :在向 pending.json 追加新条目之前,先检查队列中是否已存在相同的 srcPath 。若有,直接跳过,不重复添加。这样即使链接目录被误触创建事件,也不会污染队列,同时也避免了后续转移脚本重复处理。 转移脚本与队列处理 监控是持续运行的,迁移则是定期手动触发(比如一个月或半年一次)。转移脚本读取 pending.json ,把存档从 AppData 搬走,原地建符号链接。 1. 转移脚本设计要点 从 pending.json 读取待处理项。 对每一项,先确定目标目录名。优先使用手动填写的 remark ,否则从解码后的 exe 路径自动提取游戏文件夹名,若都失败则回退到原始目录名。 通过 robocopy 将源目录完整复制到 D:\GameSaves\目标名 。 复制成功后, 删除源目录 ,并在同一位置创建一个 目录链接 指向新路径。 将迁移关系记录到 Markdown 格式的日志文件 存档迁移记录.md 中。 处理成功的条目从队列移除,失败则保留,等待下次重试。 2. 几个关键设计 安全删除和链接创建 ,这是最容易翻车的环节,有两个点必须处理好: 复制前如果目标目录已存在 (比如之前迁移过但记录丢了),直接 robocopy 会合并文件,可能造成新旧存档混杂。必须先尝试删除已有目标目录,并 检查是否真的被删干净 ;若因文件占用无法完全删除,则中止本次操作,保留队列项。 复制后删除源目录时,同样可能因文件占用导致部分删除失败 。必须确认源目录已完全消失后,才能创建链接。否则残留目录加上失败的链接创建,会让游戏存档状态混乱。若删除失败,整个迁移视为未完成,保留在队列中,下次重试。 这些检查在脚本中都是以条件判断 + 日志记录的方式实现的,确保一定成功。 迁移记录以 Markdown 表格形式写入 存档迁移记录.md ,例如: 原 C 盘快捷方式名 实际存储位置 游戏/说明 praygame D:\GameSaves\祈愿游戏 praygame 游戏存档 rmmz-game D:\GameSaves\莉可的不可思议差事 莉可的不可思议差事 这样无论后续手动浏览还是用其他工具解析,都非常直观。 队列自动清理 :每处理完一批,脚本生成一个新的 JSON 数组,只包含失败的项,覆盖写回 pending.json 。成功的自动消失,不需要手动编辑。 设置开机自启 使用 Windows 任务计划程序保证脚本在每次登录时自动运行。 操作步骤 打开“任务计划程序” (可以 Win+R 输入 taskschd.msc )。 右侧点击 “创建任务” (不是“创建基本任务”)。 名称: GameSavesMonitor 配置: Windows 10 ,勾选 “使用最高权限运行” 。 触发器 → 新建: 开始任务: 登录时 特定用户:选择你的账户(如 DESKTOP-XXX\admin ) 高级设置: 延迟任务时间 30 秒 (给网络驱动器映射留出时间) 确保“已启用”被勾选。 操作 → 新建: 程序或脚本: powershell.exe 添加参数: -WindowStyle Hidden -ExecutionPolicy Bypass -File "D:\Scripts\Watch-GameSaves.ps1" 起始于(可选): D:\Scripts 条件 :建议取消“只有在计算机使用交流电源时才启动此任务”(笔记本)。 设置 :勾选“如果任务失败,按以下频率重新启动”(间隔 1 分钟,最多 3 次)。 确定保存。 验证自启是否生效 重启电脑后登录, Win+R 输入 taskschd.msc 查看 显示所有正在运行的任务 。 检查日志文件 D:\GameSaves\监控调试日志.txt ,应包含最新的启动时间戳。 总结 通过这套方案,无论游戏安装在本地还是 NAS,只要启动游戏产生配置文件夹,脚本就会自动记录存档路径和对应的游戏 exe 位置(Base64 编码),并利用任务计划程序实现开机自启,再配合手动或自动迁移脚本,基本可以保证AppData较为干净。 由于所有操作都在 AppData 内进行(删除、创建链接), 直接贴出完整脚本容易导致佬们在不理解的情况下误操作,造成数据丢失 。因此本文只讲逻辑和关键点,佬们可以根据以上思路自行编写,或让 AI 辅助生成。真有需要的佬可以私信我,如果对某一块的实现细节感兴趣,也欢迎留言交流。 2 个帖子 - 2 位参与者 阅读完整话题
有很多请求提示TPM,都是0输入0返回,是不是负载太高了。模型监控也异常了 1 个帖子 - 1 位参与者 阅读完整话题
在 X 上看到有人晒了张菜单栏工具的截图,手痒,让 Claude Code 照着撸了一个(对,用 Claude Code 写监控 Claude Code 的工具),顺手开源: https://github.com/adaiguoguo/Oolong 做的过程中发现一个有意思的事:市面上的同类工具( ClaudeBar 、Claude-Usage-Tracker 这些)要显示官方限流百分比,要么读你的 OAuth token 去调未公开接口,要么要你的 claude.ai cookie 。我本来也打算这么干,结果发现 Claude Code 自己就把官方限流数据( 5h/7d 的 % used + 重置时间戳)通过 stdin 喂给了 statusline 脚本 ——在 statusline 里加一行 jq 落成本地文件就行。零凭据、零网络请求,数据和 /usage 命令完全一致。 功能: 今日 / 本周 / 本月 token 和花费( ccusage 在线定价) 官方 5h / 7d 限流 % + 重置倒计时 防睡眠(含合盖不睡,pmset 实现,到期自动恢复) CPU / 内存 / 电池 纯 Swift 约 760KB ,无 Electron ,中英双语 局限也说清楚:限流 % 只在 Claude Code 活跃时刷新(倒计时任何时候都准);只有 arm64 ; ad-hoc 签名,首次启动要过一下 Gatekeeper 。 README 里放了和同类工具的诚实对比表。欢迎拍砖。
在 X 上看到有人晒了张菜单栏工具的截图,手痒,让 Claude Code 照着撸了一个(对,用 Claude Code 写监控 Claude Code 的工具),顺手开源: https://github.com/adaiguoguo/Oolong 做的过程中发现一个有意思的事:市面上的同类工具( ClaudeBar 、Claude-Usage-Tracker 这些)要显示官方限流百分比,要么读你的 OAuth token 去调未公开接口,要么要你的 claude.ai cookie 。我本来也打算这么干,结果发现 Claude Code 自己就把官方限流数据( 5h/7d 的 % used + 重置时间戳)通过 stdin 喂给了 statusline 脚本 ——在 statusline 里加一行 jq 落成本地文件就行。零凭据、零网络请求,数据和 /usage 命令完全一致。 功能: 今日 / 本周 / 本月 token 和花费( ccusage 在线定价) 官方 5h / 7d 限流 % + 重置倒计时 防睡眠(含合盖不睡,pmset 实现,到期自动恢复) CPU / 内存 / 电池 纯 Swift 约 760KB ,无 Electron ,中英双语 局限也说清楚:限流 % 只在 Claude Code 活跃时刷新(倒计时任何时候都准);只有 arm64 ; ad-hoc 签名,首次启动要过一下 Gatekeeper 。 README 里放了和同类工具的诚实对比表。欢迎拍砖。
在 X 上看到有人晒了张菜单栏工具的截图,手痒,让 Claude Code 照着撸了一个(对,用 Claude Code 写监控 Claude Code 的工具),顺手开源: https://github.com/adaiguoguo/Oolong 做的过程中发现一个有意思的事:市面上的同类工具( ClaudeBar 、Claude-Usage-Tracker 这些)要显示官方限流百分比,要么读你的 OAuth token 去调未公开接口,要么要你的 claude.ai cookie 。我本来也打算这么干,结果发现 Claude Code 自己就把官方限流数据( 5h/7d 的 % used + 重置时间戳)通过 stdin 喂给了 statusline 脚本 ——在 statusline 里加一行 jq 落成本地文件就行。零凭据、零网络请求,数据和 /usage 命令完全一致。 功能: 今日 / 本周 / 本月 token 和花费( ccusage 在线定价) 官方 5h / 7d 限流 % + 重置倒计时 防睡眠(含合盖不睡,pmset 实现,到期自动恢复) CPU / 内存 / 电池 纯 Swift 约 760KB ,无 Electron ,中英双语 局限也说清楚:限流 % 只在 Claude Code 活跃时刷新(倒计时任何时候都准);只有 arm64 ; ad-hoc 签名,首次启动要过一下 Gatekeeper 。 README 里放了和同类工具的诚实对比表。欢迎拍砖。
加了蜂鸣器和红绿灯 还加了个温湿度传感器 后面是不是该搞个板子焊起来 6 个帖子 - 5 位参与者 阅读完整话题
最近需要做一个机房监控,两套VM,一套SmartX,10几个防火墙,几个核心交换机,几十个三层交换机,主要是监控异常状态,有问题短信,微信推送。佬们有没有好的开源的可以二开的推荐一下呀,问了AI推荐的ZABBIX和netbox装起来太复杂了。 1 个帖子 - 1 位参与者 阅读完整话题
我想知道自己的 NAS 硬盘什么时候休眠什么时候活动,想知道一天被唤醒多少次。所以写了这个脚本。 DiskMonitorV1.0_20260610 这个脚本是按自己的需求写的,主要实现以下功能 1 )实时查询硬盘休眠状态并记录 2 )后台定时查询并记录硬盘状态 3 )统计 24h 后硬盘唤醒次数及总唤醒时间 4 ) 24h 硬盘活动图表 5 )最大化精简脚本,不额外安装依赖。只用了 hdpram 查询硬盘和 python3 运行 http 服务 一般情况下,适用于所有的 linux ,只要你安装了 hdparm 和 python3 。 实际运行截图如下: 项目文件 /var/www/hddstatus/ ├── config # 统一配置文件 ├── disk_events.log # 事件日志(运行时生成) ├── cache/ # 状态缓存目录 └── cgi-bin/ ├── status # 硬盘状态页 ├── log # 24h 趋势图表 + 日志 ├── log-full # 全部日志纯文本 └── update-disk-info # 更新硬盘名称 /usr/local/bin/ ├── disk_monitor.sh # 后台监控 ├── disk_monitor_startup.sh # 启动时初始化 └── disk_info.sh # 硬盘名称缓存生成 /etc/systemd/system/ ├── disk-monitor.service └── hddstatus.service /etc/sudoers.d/ └── hddstatus 使用教程: 使用 root 登录,或者 sudo chmod +x diskmonitor_install.sh chmod +x diskmonitor_uninstall.sh 安装 ./diskmonitor_install.sh 卸载 ./diskmonitor_uninstall.sh 状态页: http://机器 IP:58008/cgi-bin/status 日志页: http://机器 IP:58008/cgi-bin/log 修改配置: nano /var/www/hddstatus/config 然后 systemctl restart disk-monitor hddstatus config 配置文件说明 1 )硬盘要监控几个,填在 DISKS 里 2 )后台监控时隔,默认 5 分钟,没必要太频繁。因为时隔为 5 分钟监控一次,所以记录的唤醒休眠时间可能会有几分钟偏差。 3 ) Web 服务端口,字面意思 4 )硬盘自定义显示名称,前面 DISKS 里有几块硬盘这里就加几条记录 5 ) hdparm 程序目录,自己按自己机器上的填,一般不用动。 6 )其余日志文件参数不要动。 # ========== 硬盘监控统一配置 ========== # 要监控的硬盘设备(空格分隔) DISKS="/dev/sda /dev/sdb" # 后台监控检查间隔(秒),建议 ≥ 硬盘 spindown 时间 MONITOR_INTERVAL=300 # Web 服务端口 WEB_PORT=58008 # 硬盘自定义显示名称(可选) # 格式:LABEL_设备名="显示名称" LABEL_sda="WD-500G" LABEL_sdb="GS-480G" # hdparm 路径 HDPARM="/usr/sbin/hdparm" 如果硬盘很老,频繁 hdparm 查询硬盘状态会影响硬盘休眠(很少见),那就只能加大监控的间隔或不用这个脚本。 不对这个脚本对你们硬盘/机器带来的任何影响负责。需要自取。 脚本 链接: https://pan.quark.cn/s/9dd16addf27f
我想知道自己的 NAS 硬盘什么时候休眠什么时候活动,想知道一天被唤醒多少次。所以写了这个脚本。 DiskMonitorV1.0_20260610 这个脚本是按自己的需求写的,主要实现以下功能 1 )实时查询硬盘休眠状态并记录 2 )后台定时查询并记录硬盘状态 3 )统计 24h 后硬盘唤醒次数及总唤醒时间 4 ) 24h 硬盘活动图表 5 )最大化精简脚本,不额外安装依赖。只用了 hdpram 查询硬盘和 python3 运行 http 服务 一般情况下,适用于所有的 linux ,只要你安装了 hdparm 和 python3 。 实际运行截图如下: 项目文件 /var/www/hddstatus/ ├── config # 统一配置文件 ├── disk_events.log # 事件日志(运行时生成) ├── cache/ # 状态缓存目录 └── cgi-bin/ ├── status # 硬盘状态页 ├── log # 24h 趋势图表 + 日志 ├── log-full # 全部日志纯文本 └── update-disk-info # 更新硬盘名称 /usr/local/bin/ ├── disk_monitor.sh # 后台监控 ├── disk_monitor_startup.sh # 启动时初始化 └── disk_info.sh # 硬盘名称缓存生成 /etc/systemd/system/ ├── disk-monitor.service └── hddstatus.service /etc/sudoers.d/ └── hddstatus 使用教程: 使用 root 登录,或者 sudo chmod +x diskmonitor_install.sh chmod +x diskmonitor_uninstall.sh 安装 ./diskmonitor_install.sh 卸载 ./diskmonitor_uninstall.sh 状态页: http://机器 IP:58008/cgi-bin/status 日志页: http://机器 IP:58008/cgi-bin/log 修改配置: nano /var/www/hddstatus/config 然后 systemctl restart disk-monitor hddstatus config 配置文件说明 1 )硬盘要监控几个,填在 DISKS 里 2 )后台监控时隔,默认 5 分钟,没必要太频繁。因为时隔为 5 分钟监控一次,所以记录的唤醒休眠时间可能会有几分钟偏差。 3 ) Web 服务端口,字面意思 4 )硬盘自定义显示名称,前面 DISKS 里有几块硬盘这里就加几条记录 5 ) hdparm 程序目录,自己按自己机器上的填,一般不用动。 6 )其余日志文件参数不要动。 # ========== 硬盘监控统一配置 ========== # 要监控的硬盘设备(空格分隔) DISKS="/dev/sda /dev/sdb" # 后台监控检查间隔(秒),建议 ≥ 硬盘 spindown 时间 MONITOR_INTERVAL=300 # Web 服务端口 WEB_PORT=58008 # 硬盘自定义显示名称(可选) # 格式:LABEL_设备名="显示名称" LABEL_sda="WD-500G" LABEL_sdb="GS-480G" # hdparm 路径 HDPARM="/usr/sbin/hdparm" 如果硬盘很老,频繁 hdparm 查询硬盘状态会影响硬盘休眠(很少见),那就只能加大监控的间隔或不用这个脚本。 不对这个脚本对你们硬盘/机器带来的任何影响负责。需要自取。 脚本 链接: https://pan.quark.cn/s/9dd16addf27f
公司凭监控片段“突袭式”开除员工?近日,江苏省南京市中级人民法院对一起劳动争议案作出二审判决。 据报道,2025年1月,在公司工作了4年多的技术工程师小林(化名),结束驻外项目,回到南京分公司坐班,每天按时上下班,主动做调研并汇报进展。 结果在2025年2月13日下午5点多,小林被公司以“严重违纪”为由,当场解聘,并要求1小时内办完全部离职手续。 在法庭上,公司声称十几段没有声音的监控视频是开除小林的“摸鱼罪证”,其中包括:离开工位15分钟、提前离岗4分钟、迟开电脑8分钟、和同事说话4分钟等。对此,小林在法庭上一一反驳。 公司提供的“证据”显示: 1月17日: 离座9分钟,看手机,和同事说话4分钟。 1月23日: 离座15分钟,上下午跟同事聊天各15分钟,提前3分钟收拾东西。 1月24日: 延后8分钟开启电脑,查看手机。 1月26日: 离座14分钟,看手机,提前4分钟离开工位。 2月5日: 电脑黑屏静置28分钟,提前4分钟离开工位。 对此,小林反驳: 关于提前几分钟离岗: “我的办公室在4楼,打卡签退在1楼。我提早4分钟去等电梯、下班准时打卡,这叫早退?” 关于离座与说话: “离开工位是上厕所、喝水等基本生理需求;和同事说话是正常工作交流;看手机是为了查看竞品和工作微信,监控凭什么说我是‘划水’?” 关于突袭开除: “在职4年多我没有任何违纪记录。公司从未对我进行过任何提醒、警告或核实,直接用监控片段‘定罪’搞突袭,这不是违法是什么?” 近日,南京市中级人民法院对该起劳动争议案作出二审判决,认为本案中,监控视频显示的行为,持续时间短、频次低,未达“严重违纪”程度,公司凭监控片段“突袭式”开除员工属于违法,判令公司支付赔偿金10.8万元。 本案二审法官在判决后表示,技术能记录外在行为,却无法评判主观动机。企业试图通过不间断监控,把员工死死固定在工位上,既不现实,法律也绝不赞同! (据“央视网”微信公众号) 各位今天在工位上了LINUX.DO几分钟~? 4 个帖子 - 4 位参与者 阅读完整话题
我想知道自己的 NAS 硬盘什么时候休眠什么时候活动,想知道一天被唤醒多少次。所以写了这个脚本。 DiskMonitorV1.0_20260610 这个脚本是按自己的需求写的,主要实现以下功能 1 )实时查询硬盘休眠状态并记录 2 )后台定时查询并记录硬盘状态 3 )统计 24h 后硬盘唤醒次数及总唤醒时间 4 ) 24h 硬盘活动图表 5 )最大化精简脚本,不额外安装依赖。只用了 hdpram 查询硬盘和 python3 运行 http 服务 一般情况下,适用于所有的 linux ,只要你安装了 hdparm 和 python3 。 实际运行截图如下: 项目文件 /var/www/hddstatus/ ├── config # 统一配置文件 ├── disk_events.log # 事件日志(运行时生成) ├── cache/ # 状态缓存目录 └── cgi-bin/ ├── status # 硬盘状态页 ├── log # 24h 趋势图表 + 日志 ├── log-full # 全部日志纯文本 └── update-disk-info # 更新硬盘名称 /usr/local/bin/ ├── disk_monitor.sh # 后台监控 ├── disk_monitor_startup.sh # 启动时初始化 └── disk_info.sh # 硬盘名称缓存生成 /etc/systemd/system/ ├── disk-monitor.service └── hddstatus.service /etc/sudoers.d/ └── hddstatus 使用教程: 使用 root 登录,或者 sudo chmod +x diskmonitor_install.sh chmod +x diskmonitor_uninstall.sh 安装 ./diskmonitor_install.sh 卸载 ./diskmonitor_uninstall.sh 状态页: http://机器 IP:58008/cgi-bin/status 日志页: http://机器 IP:58008/cgi-bin/log 修改配置: nano /var/www/hddstatus/config 然后 systemctl restart disk-monitor hddstatus config 配置文件说明 1 )硬盘要监控几个,填在 DISKS 里 2 )后台监控时隔,默认 5 分钟,没必要太频繁。因为时隔为 5 分钟监控一次,所以记录的唤醒休眠时间可能会有几分钟偏差。 3 ) Web 服务端口,字面意思 4 )硬盘自定义显示名称,前面 DISKS 里有几块硬盘这里就加几条记录 5 ) hdparm 程序目录,自己按自己机器上的填,一般不用动。 6 )其余日志文件参数不要动。 # ========== 硬盘监控统一配置 ========== # 要监控的硬盘设备(空格分隔) DISKS="/dev/sda /dev/sdb" # 后台监控检查间隔(秒),建议 ≥ 硬盘 spindown 时间 MONITOR_INTERVAL=300 # Web 服务端口 WEB_PORT=58008 # 硬盘自定义显示名称(可选) # 格式:LABEL_设备名="显示名称" LABEL_sda="WD-500G" LABEL_sdb="GS-480G" # hdparm 路径 HDPARM="/usr/sbin/hdparm" 如果硬盘很老,频繁 hdparm 查询硬盘状态会影响硬盘休眠(很少见),那就只能加大监控的间隔或不用这个脚本。 不对这个脚本对你们硬盘/机器带来的任何影响负责。需要自取。 脚本 链接: https://pan.quark.cn/s/9dd16addf27f
一个人写了大半年 Android App ,聊聊过程中的一些取舍 #5 前几篇聊过 Meows ( #1 、 #2 等)——一个 SSH 服务器监控 App ,填个 IP 加账号就能盯自己 VPS 的 CPU / 内存 / 磁盘 / 网络,服务器端零安装。这篇说说 1.0.151 比上一版多了啥:一个大功能( Docker 管理)+ 一堆磨细节的优化。 先放张图,一台服务器在卡片上长这样: 光这一张卡片就够我纠结半天——地区、系统、内核、机房、几个流媒体/AI 的解锁状态、CPU/内存/磁盘、上下行……信息想给全,又怕糊一脸。来回改了好几版,最后按"多久变一次"来排:基本不动的系统信息靠前,状态类的放中间,每秒都在蹦的 CPU/网速丢最后,算是个妥协。当然排版这事众口难调,所以这些徽章在设置里都能自己勾选——嫌挤的留几个核心的就行,想全看着也随你。 新增:Docker 容器管理 挺多人的小鸡其实就是挂几个 docker 容器跑着( nginx-proxy-manager 之类)。既然 App 都已经连上去看机器了,顺手把容器也照看了,算是水到渠成。 纠结的点在"怎么不破坏零安装"。市面上手机管 Docker ,要么让你在服务器开个远程端口,要么装个客户端——这俩我都不想要:开端口是个安全口子,装东西又违背了这 App 一贯的"服务器上啥都别动"。最后还是全程走 SSH 搞定,服务器一个字节都不用加。 容器没有单开页面,直接翻在服务器卡片里——一点从"状态"翻到"容器",启动、停止、重启、看日志都在这一块: 日志能实时跟着滚,固定留最新两百行,排问题的时候挺顺手: 优化:一堆磨细节的地方 这版没憋大招的部分,基本都花在磨手感上: 历史曲线下面新加了一块详情——看 CPU/内存,能顺带列出最吃资源的几个进程;看磁盘,列各挂载点;看网络,列各网卡。以前就一条干巴巴的线,现在能往下钻一层。 终端那套文字渲染我推倒重写了一遍,长输出滚起来更跟手,刷屏也不容易花。这种活属于不出问题没人夸、一出问题全是差评,吃力不讨好但躲不掉。 剩下就是配色、间距、百分号到底要不要空格这类强迫症细节,又收拾了一轮(别问,问就是改了又改)。 最后 说到底这 App 就一个出发点:填个 IP 就能用,服务器端什么都不装。 一个人断断续续写了大半年,能磨的细节尽量磨。有在用的、或者有想法的,欢迎拍砖。 付费买断 $4.99 ,没订阅、没广告、没埋点(运行时就要一个通知权限)。Google Play 搜 Meows ,或者直接戳: https://play.google.com/store/apps/details?id=com.meows.android 上架地区:日本、美国、新加坡、韩国、香港、台湾、英国、加拿大、澳门、马来西亚、冰岛。Android 14+,支持中英日韩。
一个人写了大半年 Android App ,聊聊过程中的一些取舍 #5 前几篇聊过 Meows ( #1 、 #2 等)——一个 SSH 服务器监控 App ,填个 IP 加账号就能盯自己 VPS 的 CPU / 内存 / 磁盘 / 网络,服务器端零安装。这篇说说 1.0.151 比上一版多了啥:一个大功能( Docker 管理)+ 一堆磨细节的优化。 先放张图,一台服务器在卡片上长这样: 光这一张卡片就够我纠结半天——地区、系统、内核、机房、几个流媒体/AI 的解锁状态、CPU/内存/磁盘、上下行……信息想给全,又怕糊一脸。来回改了好几版,最后按"多久变一次"来排:基本不动的系统信息靠前,状态类的放中间,每秒都在蹦的 CPU/网速丢最后,算是个妥协。当然排版这事众口难调,所以这些徽章在设置里都能自己勾选——嫌挤的留几个核心的就行,想全看着也随你。 新增:Docker 容器管理 挺多人的小鸡其实就是挂几个 docker 容器跑着( nginx-proxy-manager 之类)。既然 App 都已经连上去看机器了,顺手把容器也照看了,算是水到渠成。 纠结的点在"怎么不破坏零安装"。市面上手机管 Docker ,要么让你在服务器开个远程端口,要么装个客户端——这俩我都不想要:开端口是个安全口子,装东西又违背了这 App 一贯的"服务器上啥都别动"。最后还是全程走 SSH 搞定,服务器一个字节都不用加。 容器没有单开页面,直接翻在服务器卡片里——一点从"状态"翻到"容器",启动、停止、重启、看日志都在这一块: 日志能实时跟着滚,固定留最新两百行,排问题的时候挺顺手: 优化:一堆磨细节的地方 这版没憋大招的部分,基本都花在磨手感上: 历史曲线下面新加了一块详情——看 CPU/内存,能顺带列出最吃资源的几个进程;看磁盘,列各挂载点;看网络,列各网卡。以前就一条干巴巴的线,现在能往下钻一层。 终端那套文字渲染我推倒重写了一遍,长输出滚起来更跟手,刷屏也不容易花。这种活属于不出问题没人夸、一出问题全是差评,吃力不讨好但躲不掉。 剩下就是配色、间距、百分号到底要不要空格这类强迫症细节,又收拾了一轮(别问,问就是改了又改)。 最后 说到底这 App 就一个出发点:填个 IP 就能用,服务器端什么都不装。 一个人断断续续写了大半年,能磨的细节尽量磨。有在用的、或者有想法的,欢迎拍砖。 付费买断 $4.99 ,没订阅、没广告、没埋点(运行时就要一个通知权限)。Google Play 搜 Meows ,或者直接戳: https://play.google.com/store/apps/details?id=com.meows.android 上架地区:日本、美国、新加坡、韩国、香港、台湾、英国、加拿大、澳门、马来西亚、冰岛。Android 14+,支持中英日韩。
一个人写了大半年 Android App ,聊聊过程中的一些取舍 #5 前几篇聊过 Meows ( #1 、 #2 等)——一个 SSH 服务器监控 App ,填个 IP 加账号就能盯自己 VPS 的 CPU / 内存 / 磁盘 / 网络,服务器端零安装。这篇说说 1.0.151 比上一版多了啥:一个大功能( Docker 管理)+ 一堆磨细节的优化。 先放张图,一台服务器在卡片上长这样: 光这一张卡片就够我纠结半天——地区、系统、内核、机房、几个流媒体/AI 的解锁状态、CPU/内存/磁盘、上下行……信息想给全,又怕糊一脸。来回改了好几版,最后按"多久变一次"来排:基本不动的系统信息靠前,状态类的放中间,每秒都在蹦的 CPU/网速丢最后,算是个妥协。当然排版这事众口难调,所以这些徽章在设置里都能自己勾选——嫌挤的留几个核心的就行,想全看着也随你。 新增:Docker 容器管理 挺多人的小鸡其实就是挂几个 docker 容器跑着( nginx-proxy-manager 之类)。既然 App 都已经连上去看机器了,顺手把容器也照看了,算是水到渠成。 纠结的点在"怎么不破坏零安装"。市面上手机管 Docker ,要么让你在服务器开个远程端口,要么装个客户端——这俩我都不想要:开端口是个安全口子,装东西又违背了这 App 一贯的"服务器上啥都别动"。最后还是全程走 SSH 搞定,服务器一个字节都不用加。 容器没有单开页面,直接翻在服务器卡片里——一点从"状态"翻到"容器",启动、停止、重启、看日志都在这一块: 日志能实时跟着滚,固定留最新两百行,排问题的时候挺顺手: 优化:一堆磨细节的地方 这版没憋大招的部分,基本都花在磨手感上: 历史曲线下面新加了一块详情——看 CPU/内存,能顺带列出最吃资源的几个进程;看磁盘,列各挂载点;看网络,列各网卡。以前就一条干巴巴的线,现在能往下钻一层。 终端那套文字渲染我推倒重写了一遍,长输出滚起来更跟手,刷屏也不容易花。这种活属于不出问题没人夸、一出问题全是差评,吃力不讨好但躲不掉。 剩下就是配色、间距、百分号到底要不要空格这类强迫症细节,又收拾了一轮(别问,问就是改了又改)。 最后 说到底这 App 就一个出发点:填个 IP 就能用,服务器端什么都不装。 一个人断断续续写了大半年,能磨的细节尽量磨。有在用的、或者有想法的,欢迎拍砖。 付费买断 $4.99 ,没订阅、没广告、没埋点(运行时就要一个通知权限)。Google Play 搜 Meows ,或者直接戳: https://play.google.com/store/apps/details?id=com.meows.android 上架地区:日本、美国、新加坡、韩国、香港、台湾、英国、加拿大、澳门、马来西亚、冰岛。Android 14+,支持中英日韩。
我想知道自己的 NAS 硬盘什么时候休眠什么时候活动,想知道一天被唤醒多少次。所以写了这个脚本。 DiskMonitorV1.0_20260610 这个脚本是按自己的需求写的,主要实现以下功能 1 )实时查询硬盘休眠状态并记录 2 )后台定时查询并记录硬盘状态 3 )统计 24h 后硬盘唤醒次数及总唤醒时间 4 ) 24h 硬盘活动图表 5 )最大化精简脚本,不额外安装依赖。只用了 hdpram 查询硬盘和 python3 运行 http 服务 一般情况下,适用于所有的 linux ,只要你安装了 hdparm 和 python3 。 实际运行截图如下: 项目文件 /var/www/hddstatus/ ├── config # 统一配置文件 ├── disk_events.log # 事件日志(运行时生成) ├── cache/ # 状态缓存目录 └── cgi-bin/ ├── status # 硬盘状态页 ├── log # 24h 趋势图表 + 日志 ├── log-full # 全部日志纯文本 └── update-disk-info # 更新硬盘名称 /usr/local/bin/ ├── disk_monitor.sh # 后台监控 ├── disk_monitor_startup.sh # 启动时初始化 └── disk_info.sh # 硬盘名称缓存生成 /etc/systemd/system/ ├── disk-monitor.service └── hddstatus.service /etc/sudoers.d/ └── hddstatus 使用教程: 使用 root 登录,或者 sudo chmod +x diskmonitor_install.sh chmod +x diskmonitor_uninstall.sh 安装 ./diskmonitor_install.sh 卸载 ./diskmonitor_uninstall.sh 状态页: http://机器 IP:58008/cgi-bin/status 日志页: http://机器 IP:58008/cgi-bin/log 修改配置: nano /var/www/hddstatus/config 然后 systemctl restart disk-monitor hddstatus config 配置文件说明 1 )硬盘要监控几个,填在 DISKS 里 2 )后台监控时隔,默认 5 分钟,没必要太频繁。因为时隔为 5 分钟监控一次,所以记录的唤醒休眠时间可能会有几分钟偏差。 3 ) Web 服务端口,字面意思 4 )硬盘自定义显示名称,前面 DISKS 里有几块硬盘这里就加几条记录 5 ) hdparm 程序目录,自己按自己机器上的填,一般不用动。 6 )其余日志文件参数不要动。 # ========== 硬盘监控统一配置 ========== # 要监控的硬盘设备(空格分隔) DISKS="/dev/sda /dev/sdb" # 后台监控检查间隔(秒),建议 ≥ 硬盘 spindown 时间 MONITOR_INTERVAL=300 # Web 服务端口 WEB_PORT=58008 # 硬盘自定义显示名称(可选) # 格式:LABEL_设备名="显示名称" LABEL_sda="WD-500G" LABEL_sdb="GS-480G" # hdparm 路径 HDPARM="/usr/sbin/hdparm" 如果硬盘很老,频繁 hdparm 查询硬盘状态会影响硬盘休眠(很少见),那就只能加大监控的间隔或不用这个脚本。 不对这个脚本对你们硬盘/机器带来的任何影响负责。需要自取。 脚本 链接: https://pan.quark.cn/s/9dd16addf27f
聊聊 Meows:一个手搓的原生 Android 服务器监控 App (完整介绍 + 常见问答) 之前发过几篇聊单版更新的( #1 、 #2 等),有新来的同学说没看过前面的、看着有点懵。这篇做个完整介绍,顺便把回帖里问得最多的几个问题一并答了。 Meows 是 Android 上的一个 SSH 服务器监控 App ,填个 IP + 账号(密码或私钥)就能盯自己 VPS 的 CPU / 内存 / 磁盘 / 网络,服务器端零安装。纯原生 Jetpack Compose 手搓。去年 10 月底上架,到现在版本号刷到 1.0.151 了。 三个一直没变的出发点 一、零安装,不碰服务器。 传统探针那套要在服务器装 agent 、配权限、数据还得过第三方,我自己作为用户就嫌烦,尤其小鸡资源本来就紧。Meows 全程靠标准 SSH 取数据,填个地址就能看到所有指标,服务器不用装任何环境。 一张卡片信息给得挺满:地区、系统、内核、机房、ASN 、几个流媒体/AI 的解锁状态、CPU/内存/磁盘、上下行,连 SSH 登录失败次数都有,有没有被爆破一眼看出。嫌挤的话设置里能自己勾选要显示哪些徽章。 二、原生手搓,不堆第三方库。 纯 Kotlin + Compose ,连终端的 ANSI 解析引擎都是手搓的状态机。依赖少,安全性也更高。常有人问是不是 ServerBox 改的——不是,两者没有任何关系。ServerBox 是 Flutter 跨平台方案,也是很优秀的工具; Meows 走的是纯原生 Android 路线,从零手搓,两条路各有取舍。 三、安全摆在前面。 所有 SSH 密码和私钥走 AES-GCM + Android Keystore 硬件级加密,密钥由系统底层托管、只存在你手机上、不上传任何服务器,数据库就算被拖走也解不出来。App 运行时只要一个通知权限——而且连这个都可以不给,拒了照样用,无非告警通知弹不出来。权限列表就这么干净,不收集、不共享任何数据。另外有个隐私模式,开了之后截屏、录屏、最近任务缩略图全被拦——在外面掏出手机看服务器,不怕旁边人瞟。 功能速览 实时监控 + 历史曲线。 CPU 、内存、磁盘、上下行、TCP 连接数、在线时长,实时刷新。9 种指标都有历史曲线( 1/2/5 分钟跨度)。曲线下面还带明细:看 CPU/内存时列出最吃资源的几个进程,磁盘列各挂载点,网络列各网卡。 告警。 CPU / 内存 / 磁盘超过你设的阈值、或者服务器掉线,手机会弹通知提醒,多个指标同时超标会合并、带防抖。 交互式终端。 手搓的 ANSI 引擎。不是黑底白字那种老样式,配色跟着系统主题自动取色,深色浅色都适配;输出带语义着色,文件权限、路径、IP 、百分比阈值会按类型或数值上色。 nano 、vim 、htop 这些全屏程序都能正常跑,在终端里编辑代码,语法高亮也正常(下图拿 nano 翻一个小程序): 底部有快捷键栏(方向键、Ctrl 、Esc 等),支持跳板机,等宽字体有 4 款可选。 Docker 容器管理 (最新加的)。同样不在服务器装东西——启停、重启、看实时日志,直接翻在服务器卡片里。 网络诊断。 TLS 证书、DNS 解析、WHOIS 、IP 归属查询,手机上当 dig / openssl / whois 用,排查"为什么连不上某个域名"挺顺手。 解锁检测。 买 VPS 的多少都关心这个:Netflix 、Disney+、YouTube Premium 、Prime Video 、ChatGPT 、Claude 、Gemini 、Google Scholar 共 8 项,结果直接挂在服务器卡片上(上面第一张图里就有),新机器连上就知道解不解锁,不用自己跑脚本一个个测。Netflix 还会区分只解锁自制剧还是完全解锁。 云端备份。 服务器配置攒多了最怕换机重来。备份存在你自己的 Google Drive 里,上传前用主密码做双层 AES-GCM 加密——服务器密码、私钥这些,Google 和我都解不开,只有你的主密码能解;哪怕你把备份文件单独拷出来、甚至哪天泄露了,在量子计算机量产之前,别人拿到手也就是一坨乱码。换机或重装,登录恢复一下就全回来了。 速查手册 + 小工具。 Linux 命令速查( 12 分类、240 条命令,全带选项和示例)+ C 编程手册( 300+ 标准库函数),代码块都带语法着色。 另外还有 SSH 隧道(-L/-R 端口转发)和跳板机,外加进制转换 / 子网计算 / Cron 生成 / 正则测试 / 时间戳 / 权限计算这些零碎工具,都收在设置页里,一眼能看全: 常见问答 有 iOS 版吗? 暂时不做。我虽然是双机党,但是个 Android 粉,这 App 也是自用出发,所以短期不考虑 iOS 。 有用到 AI 吗? 目前 Android Studio 裸写,市面上嵌入 IDE 的代码 AI 大都收费,财力实在有限;手搓受限于个人能力,只能说能工智人了。 定价? $4.99 一次买断,没有订阅、没有内购、没有广告,后续版本更新一直免费。算下来一杯咖啡的价(节假日偶尔打折)。已经更新了 150 多个版本,自己每天都在用,不会弃坑。 "您的设备与此版本不兼容 / 未认证"? 这是 Google Play 的设备认证合规政策,不是 Meows 的限制。Meows 存的是 SSH 密码和私钥,Keystore 硬件加密在未认证设备上没法保证安全,所以跟着这个政策走。解锁了 bootloader 的设备可能显示未认证,可以先在网页端(电脑浏览器)把 App 加入库,再到手机下载。 私钥连不上? RSA / ED25519 / ECDSA 都支持。连不上先检查:私钥粘贴时有没有混进多余的空行或空格?如果私钥设了 passphrase ,要一并填上。 内网服务器(没有公网 IP )能监控吗? 可以,配个跳板机就行,连接走"手机 → 跳板机 → 内网机器"这条链。监控、终端、隧道都支持走跳板机。 为什么终端选了服务器还要手动点连接? 有意的设计。选中只是选中,连接要点右上角的连接图标——SSH 的连接和断开是一对显式操作,切服务器时不会触发不必要的断开重连,断开后也能明确地手动重连。 系统要求? Android 14 以上。支持简中 / 繁中 / 英 / 日 / 韩。 下载 Google Play 搜 Meows ,或者直接戳: https://play.google.com/store/apps/details?id=com.meows.android 上架地区:日本、美国、新加坡、韩国、香港、台湾、英国、加拿大、澳门、马来西亚、冰岛。Android 14+,简中/繁中/英/日/韩。 有问题或建议直接回帖
聊聊 Meows:一个手搓的原生 Android 服务器监控 App (完整介绍 + 常见问答) 之前发过几篇聊单版更新的( #1 、 #2 等),有新来的同学说没看过前面的、看着有点懵。这篇做个完整介绍,顺便把回帖里问得最多的几个问题一并答了。 Meows 是 Android 上的一个 SSH 服务器监控 App ,填个 IP + 账号(密码或私钥)就能盯自己 VPS 的 CPU / 内存 / 磁盘 / 网络,服务器端零安装。纯原生 Jetpack Compose 手搓。去年 10 月底上架,到现在版本号刷到 1.0.151 了。 三个一直没变的出发点 一、零安装,不碰服务器。 传统探针那套要在服务器装 agent 、配权限、数据还得过第三方,我自己作为用户就嫌烦,尤其小鸡资源本来就紧。Meows 全程靠标准 SSH 取数据,填个地址就能看到所有指标,服务器不用装任何环境。 一张卡片信息给得挺满:地区、系统、内核、机房、ASN 、几个流媒体/AI 的解锁状态、CPU/内存/磁盘、上下行,连 SSH 登录失败次数都有,有没有被爆破一眼看出。嫌挤的话设置里能自己勾选要显示哪些徽章。 二、原生手搓,不堆第三方库。 纯 Kotlin + Compose ,连终端的 ANSI 解析引擎都是手搓的状态机。依赖少,安全性也更高。常有人问是不是 ServerBox 改的——不是,两者没有任何关系。ServerBox 是 Flutter 跨平台方案,也是很优秀的工具; Meows 走的是纯原生 Android 路线,从零手搓,两条路各有取舍。 三、安全摆在前面。 所有 SSH 密码和私钥走 AES-GCM + Android Keystore 硬件级加密,密钥由系统底层托管、只存在你手机上、不上传任何服务器,数据库就算被拖走也解不出来。App 运行时只要一个通知权限——而且连这个都可以不给,拒了照样用,无非告警通知弹不出来。权限列表就这么干净,不收集、不共享任何数据。另外有个隐私模式,开了之后截屏、录屏、最近任务缩略图全被拦——在外面掏出手机看服务器,不怕旁边人瞟。 功能速览 实时监控 + 历史曲线。 CPU 、内存、磁盘、上下行、TCP 连接数、在线时长,实时刷新。9 种指标都有历史曲线( 1/2/5 分钟跨度)。曲线下面还带明细:看 CPU/内存时列出最吃资源的几个进程,磁盘列各挂载点,网络列各网卡。 告警。 CPU / 内存 / 磁盘超过你设的阈值、或者服务器掉线,手机会弹通知提醒,多个指标同时超标会合并、带防抖。 交互式终端。 手搓的 ANSI 引擎。不是黑底白字那种老样式,配色跟着系统主题自动取色,深色浅色都适配;输出带语义着色,文件权限、路径、IP 、百分比阈值会按类型或数值上色。 nano 、vim 、htop 这些全屏程序都能正常跑,在终端里编辑代码,语法高亮也正常(下图拿 nano 翻一个小程序): 底部有快捷键栏(方向键、Ctrl 、Esc 等),支持跳板机,等宽字体有 4 款可选。 Docker 容器管理 (最新加的)。同样不在服务器装东西——启停、重启、看实时日志,直接翻在服务器卡片里。 网络诊断。 TLS 证书、DNS 解析、WHOIS 、IP 归属查询,手机上当 dig / openssl / whois 用,排查"为什么连不上某个域名"挺顺手。 解锁检测。 买 VPS 的多少都关心这个:Netflix 、Disney+、YouTube Premium 、Prime Video 、ChatGPT 、Claude 、Gemini 、Google Scholar 共 8 项,结果直接挂在服务器卡片上(上面第一张图里就有),新机器连上就知道解不解锁,不用自己跑脚本一个个测。Netflix 还会区分只解锁自制剧还是完全解锁。 云端备份。 服务器配置攒多了最怕换机重来。备份存在你自己的 Google Drive 里,上传前用主密码做双层 AES-GCM 加密——服务器密码、私钥这些,Google 和我都解不开,只有你的主密码能解;哪怕你把备份文件单独拷出来、甚至哪天泄露了,在量子计算机量产之前,别人拿到手也就是一坨乱码。换机或重装,登录恢复一下就全回来了。 速查手册 + 小工具。 Linux 命令速查( 12 分类、240 条命令,全带选项和示例)+ C 编程手册( 300+ 标准库函数),代码块都带语法着色。 另外还有 SSH 隧道(-L/-R 端口转发)和跳板机,外加进制转换 / 子网计算 / Cron 生成 / 正则测试 / 时间戳 / 权限计算这些零碎工具,都收在设置页里,一眼能看全: 常见问答 有 iOS 版吗? 暂时不做。我虽然是双机党,但是个 Android 粉,这 App 也是自用出发,所以短期不考虑 iOS 。 有用到 AI 吗? 目前 Android Studio 裸写,市面上嵌入 IDE 的代码 AI 大都收费,财力实在有限;手搓受限于个人能力,只能说能工智人了。 定价? $4.99 一次买断,没有订阅、没有内购、没有广告,后续版本更新一直免费。算下来一杯咖啡的价(节假日偶尔打折)。已经更新了 150 多个版本,自己每天都在用,不会弃坑。 "您的设备与此版本不兼容 / 未认证"? 这是 Google Play 的设备认证合规政策,不是 Meows 的限制。Meows 存的是 SSH 密码和私钥,Keystore 硬件加密在未认证设备上没法保证安全,所以跟着这个政策走。解锁了 bootloader 的设备可能显示未认证,可以先在网页端(电脑浏览器)把 App 加入库,再到手机下载。 私钥连不上? RSA / ED25519 / ECDSA 都支持。连不上先检查:私钥粘贴时有没有混进多余的空行或空格?如果私钥设了 passphrase ,要一并填上。 内网服务器(没有公网 IP )能监控吗? 可以,配个跳板机就行,连接走"手机 → 跳板机 → 内网机器"这条链。监控、终端、隧道都支持走跳板机。 为什么终端选了服务器还要手动点连接? 有意的设计。选中只是选中,连接要点右上角的连接图标——SSH 的连接和断开是一对显式操作,切服务器时不会触发不必要的断开重连,断开后也能明确地手动重连。 系统要求? Android 14 以上。支持简中 / 繁中 / 英 / 日 / 韩。 下载 Google Play 搜 Meows ,或者直接戳: https://play.google.com/store/apps/details?id=com.meows.android 上架地区:日本、美国、新加坡、韩国、香港、台湾、英国、加拿大、澳门、马来西亚、冰岛。Android 14+,简中/繁中/英/日/韩。 有问题或建议直接回帖
聊聊 Meows:一个手搓的原生 Android 服务器监控 App (完整介绍 + 常见问答) 之前发过几篇聊单版更新的( #1 、 #2 等),有新来的同学说没看过前面的、看着有点懵。这篇做个完整介绍,顺便把回帖里问得最多的几个问题一并答了。 Meows 是 Android 上的一个 SSH 服务器监控 App ,填个 IP + 账号(密码或私钥)就能盯自己 VPS 的 CPU / 内存 / 磁盘 / 网络,服务器端零安装。纯原生 Jetpack Compose 手搓。去年 10 月底上架,到现在版本号刷到 1.0.151 了。 三个一直没变的出发点 一、零安装,不碰服务器。 传统探针那套要在服务器装 agent 、配权限、数据还得过第三方,我自己作为用户就嫌烦,尤其小鸡资源本来就紧。Meows 全程靠标准 SSH 取数据,填个地址就能看到所有指标,服务器不用装任何环境。 一张卡片信息给得挺满:地区、系统、内核、机房、ASN 、几个流媒体/AI 的解锁状态、CPU/内存/磁盘、上下行,连 SSH 登录失败次数都有,有没有被爆破一眼看出。嫌挤的话设置里能自己勾选要显示哪些徽章。 二、原生手搓,不堆第三方库。 纯 Kotlin + Compose ,连终端的 ANSI 解析引擎都是手搓的状态机。依赖少,安全性也更高。常有人问是不是 ServerBox 改的——不是,两者没有任何关系。ServerBox 是 Flutter 跨平台方案,也是很优秀的工具; Meows 走的是纯原生 Android 路线,从零手搓,两条路各有取舍。 三、安全摆在前面。 所有 SSH 密码和私钥走 AES-GCM + Android Keystore 硬件级加密,密钥由系统底层托管、只存在你手机上、不上传任何服务器,数据库就算被拖走也解不出来。App 运行时只要一个通知权限——而且连这个都可以不给,拒了照样用,无非告警通知弹不出来。权限列表就这么干净,不收集、不共享任何数据。另外有个隐私模式,开了之后截屏、录屏、最近任务缩略图全被拦——在外面掏出手机看服务器,不怕旁边人瞟。 功能速览 实时监控 + 历史曲线。 CPU 、内存、磁盘、上下行、TCP 连接数、在线时长,实时刷新。9 种指标都有历史曲线( 1/2/5 分钟跨度)。曲线下面还带明细:看 CPU/内存时列出最吃资源的几个进程,磁盘列各挂载点,网络列各网卡。 告警。 CPU / 内存 / 磁盘超过你设的阈值、或者服务器掉线,手机会弹通知提醒,多个指标同时超标会合并、带防抖。 交互式终端。 手搓的 ANSI 引擎。不是黑底白字那种老样式,配色跟着系统主题自动取色,深色浅色都适配;输出带语义着色,文件权限、路径、IP 、百分比阈值会按类型或数值上色。 nano 、vim 、htop 这些全屏程序都能正常跑,在终端里编辑代码,语法高亮也正常(下图拿 nano 翻一个小程序): 底部有快捷键栏(方向键、Ctrl 、Esc 等),支持跳板机,等宽字体有 4 款可选。 Docker 容器管理 (最新加的)。同样不在服务器装东西——启停、重启、看实时日志,直接翻在服务器卡片里。 网络诊断。 TLS 证书、DNS 解析、WHOIS 、IP 归属查询,手机上当 dig / openssl / whois 用,排查"为什么连不上某个域名"挺顺手。 解锁检测。 买 VPS 的多少都关心这个:Netflix 、Disney+、YouTube Premium 、Prime Video 、ChatGPT 、Claude 、Gemini 、Google Scholar 共 8 项,结果直接挂在服务器卡片上(上面第一张图里就有),新机器连上就知道解不解锁,不用自己跑脚本一个个测。Netflix 还会区分只解锁自制剧还是完全解锁。 云端备份。 服务器配置攒多了最怕换机重来。备份存在你自己的 Google Drive 里,上传前用主密码做双层 AES-GCM 加密——服务器密码、私钥这些,Google 和我都解不开,只有你的主密码能解;哪怕你把备份文件单独拷出来、甚至哪天泄露了,在量子计算机量产之前,别人拿到手也就是一坨乱码。换机或重装,登录恢复一下就全回来了。 速查手册 + 小工具。 Linux 命令速查( 12 分类、240 条命令,全带选项和示例)+ C 编程手册( 300+ 标准库函数),代码块都带语法着色。 另外还有 SSH 隧道(-L/-R 端口转发)和跳板机,外加进制转换 / 子网计算 / Cron 生成 / 正则测试 / 时间戳 / 权限计算这些零碎工具,都收在设置页里,一眼能看全: 常见问答 有 iOS 版吗? 暂时不做。我虽然是双机党,但是个 Android 粉,这 App 也是自用出发,所以短期不考虑 iOS 。 有用到 AI 吗? 目前 Android Studio 裸写,市面上嵌入 IDE 的代码 AI 大都收费,财力实在有限;手搓受限于个人能力,只能说能工智人了。 定价? $4.99 一次买断,没有订阅、没有内购、没有广告,后续版本更新一直免费。算下来一杯咖啡的价(节假日偶尔打折)。已经更新了 150 多个版本,自己每天都在用,不会弃坑。 "您的设备与此版本不兼容 / 未认证"? 这是 Google Play 的设备认证合规政策,不是 Meows 的限制。Meows 存的是 SSH 密码和私钥,Keystore 硬件加密在未认证设备上没法保证安全,所以跟着这个政策走。解锁了 bootloader 的设备可能显示未认证,可以先在网页端(电脑浏览器)把 App 加入库,再到手机下载。 私钥连不上? RSA / ED25519 / ECDSA 都支持。连不上先检查:私钥粘贴时有没有混进多余的空行或空格?如果私钥设了 passphrase ,要一并填上。 内网服务器(没有公网 IP )能监控吗? 可以,配个跳板机就行,连接走"手机 → 跳板机 → 内网机器"这条链。监控、终端、隧道都支持走跳板机。 为什么终端选了服务器还要手动点连接? 有意的设计。选中只是选中,连接要点右上角的连接图标——SSH 的连接和断开是一对显式操作,切服务器时不会触发不必要的断开重连,断开后也能明确地手动重连。 系统要求? Android 14 以上。支持简中 / 繁中 / 英 / 日 / 韩。 下载 Google Play 搜 Meows ,或者直接戳: https://play.google.com/store/apps/details?id=com.meows.android 上架地区:日本、美国、新加坡、韩国、香港、台湾、英国、加拿大、澳门、马来西亚、冰岛。Android 14+,简中/繁中/英/日/韩。 有问题或建议直接回帖
一个人写了大半年 Android App ,聊聊过程中的一些取舍 #5 前几篇聊过 Meows ( #1 、 #2 等)——一个 SSH 服务器监控 App ,填个 IP 加账号就能盯自己 VPS 的 CPU / 内存 / 磁盘 / 网络,服务器端零安装。这篇说说 1.0.151 比上一版多了啥:一个大功能( Docker 管理)+ 一堆磨细节的优化。 先放张图,一台服务器在卡片上长这样: 光这一张卡片就够我纠结半天——地区、系统、内核、机房、几个流媒体/AI 的解锁状态、CPU/内存/磁盘、上下行……信息想给全,又怕糊一脸。来回改了好几版,最后按"多久变一次"来排:基本不动的系统信息靠前,状态类的放中间,每秒都在蹦的 CPU/网速丢最后,算是个妥协。当然排版这事众口难调,所以这些徽章在设置里都能自己勾选——嫌挤的留几个核心的就行,想全看着也随你。 新增:Docker 容器管理 挺多人的小鸡其实就是挂几个 docker 容器跑着( nginx-proxy-manager 之类)。既然 App 都已经连上去看机器了,顺手把容器也照看了,算是水到渠成。 纠结的点在"怎么不破坏零安装"。市面上手机管 Docker ,要么让你在服务器开个远程端口,要么装个客户端——这俩我都不想要:开端口是个安全口子,装东西又违背了这 App 一贯的"服务器上啥都别动"。最后还是全程走 SSH 搞定,服务器一个字节都不用加。 容器没有单开页面,直接翻在服务器卡片里——一点从"状态"翻到"容器",启动、停止、重启、看日志都在这一块: 日志能实时跟着滚,固定留最新两百行,排问题的时候挺顺手: 优化:一堆磨细节的地方 这版没憋大招的部分,基本都花在磨手感上: 历史曲线下面新加了一块详情——看 CPU/内存,能顺带列出最吃资源的几个进程;看磁盘,列各挂载点;看网络,列各网卡。以前就一条干巴巴的线,现在能往下钻一层。 终端那套文字渲染我推倒重写了一遍,长输出滚起来更跟手,刷屏也不容易花。这种活属于不出问题没人夸、一出问题全是差评,吃力不讨好但躲不掉。 剩下就是配色、间距、百分号到底要不要空格这类强迫症细节,又收拾了一轮(别问,问就是改了又改)。 最后 说到底这 App 就一个出发点:填个 IP 就能用,服务器端什么都不装。 一个人断断续续写了大半年,能磨的细节尽量磨。有在用的、或者有想法的,欢迎拍砖。 付费买断 $4.99 ,没订阅、没广告、没埋点(运行时就要一个通知权限)。Google Play 搜 Meows ,或者直接戳: https://play.google.com/store/apps/details?id=com.meows.android 上架地区:日本、美国、新加坡、韩国、香港、台湾、英国、加拿大、澳门、马来西亚、冰岛。Android 14+,支持中英日韩。