node-os-utils
Version:
Advanced cross-platform operating system monitoring utilities with TypeScript support
232 lines • 6.65 kB
TypeScript
import { BasePlatformAdapter } from '../core/platform-adapter';
import { CommandResult, SupportedFeatures } from '../types/platform';
import { ExecuteOptions } from '../types/config';
/**
* macOS 平台适配器
*
* 实现 macOS 系统的监控功能,主要通过 sysctl、vm_stat、system_profiler 等命令
*/
export declare class MacOSAdapter extends BasePlatformAdapter {
private executor;
constructor();
/**
* 执行系统命令
*/
executeCommand(command: string, options?: ExecuteOptions): Promise<CommandResult>;
/**
* 读取文件内容,捕获并转换常见的权限/不存在错误
*/
readFile(path: string): Promise<string>;
/**
* 检查文件是否存在
*/
fileExists(path: string): Promise<boolean>;
/**
* 通过 sysctl 汇总 CPU 基本信息
*/
getCPUInfo(): Promise<any>;
/**
* 调用 top/iostat 获取 CPU 使用率,失败时链式回退
*/
getCPUUsage(): Promise<any>;
/**
* 使用 powermetrics 读取温度,需要 sudo 权限
*/
getCPUTemperature(): Promise<any>;
/**
* 读取 vm_stat 解析内存占用
*/
getMemoryInfo(): Promise<any>;
/**
* 读取 vm_stat 解析内存占用
*/
getMemoryUsage(): Promise<any>;
/**
* 读取 df -h 解析磁盘占用
*/
getDiskInfo(): Promise<any>;
/**
* 读取 iostat -d 解析磁盘 I/O 统计
*/
getDiskIO(): Promise<any>;
/**
* 读取 ifconfig 解析网络接口列表
*/
getNetworkInterfaces(): Promise<any>;
/**
* 读取 netstat -ib 解析网络统计信息
*/
getNetworkStats(): Promise<any>;
/**
* 读取 ps -axo pid=,ppid=,comm=,%cpu=,%mem=,rss=,stat=,user=,args= 解析进程列表
*/
getProcesses(): Promise<any>;
/**
* 读取 ps -p pid -o pid,ppid,command,pcpu,pmem,state,user,lstart 解析特定进程信息
*/
getProcessInfo(pid: number): Promise<any>;
/**
* 读取 uname -a, uptime, sysctl -n vm.loadavg, sw_vers 解析系统信息
*/
getSystemInfo(): Promise<any>;
/**
* 读取 sysctl -n vm.loadavg 解析系统负载
*/
getSystemLoad(): Promise<any>;
/**
* 读取 sysctl -n vm.loadavg 解析系统负载
*/
protected initializeSupportedFeatures(): SupportedFeatures;
private parseCPUInfo;
/**
* 解析 top 命令输出为 CPU 使用率
*/
private parseCPUUsageFromTop;
/**
* 解析 iostat 命令输出为 CPU 使用率
*/
private parseCPUUsageFromIostat;
/**
* 解析 powermetrics 命令输出为温度
*/
private parseTemperatureFromPowermetrics;
/**
* 解析 vm_stat 输出为内存信息
*/
private parseMemoryInfo;
/**
* 解析 memory_pressure 输出为内存压力
*/
private parseMemoryPressure;
/**
* 解析 df -h 输出为磁盘信息
*/
private parseDiskInfo;
/**
* 解析 iostat -d 输出为磁盘 I/O 统计
*/
private parseDiskIO;
/**
* 解析 ifconfig 输出为网络接口列表
*/
private parseNetworkInterfaces;
/**
* 解析 netstat -ib/-i 输出,兼容是否包含字节列两种格式
*/
private parseNetworkStats;
/**
* 解析 ps -axo pid=,ppid=,comm=,%cpu=,%mem=,rss=,stat=,user=,args= 输出为进程列表
*/
private parseProcessList;
/**
* 解析 ps 输出的进程详细信息
*/
private parseProcessInfo;
/**
* 解析 uname -a, uptime, sysctl -n vm.loadavg, sw_vers 输出为系统信息
*/
private parseSystemInfo;
/**
* 解析 sysctl -n vm.loadavg 输出为系统负载
*/
private parseLoadAverage;
/**
* 解析 df -h 输出的大小格式转换
*/
private convertDfSizeToBytes;
/**
* 获取磁盘使用情况,解析 df -k 输出为磁盘使用情况
*/
getDiskUsage(): Promise<any>;
/**
* 获取磁盘统计,解析 iostat -d 输出为磁盘统计
*/
getDiskStats(): Promise<any>;
/**
* 获取挂载点,解析 mount 输出为挂载点
*/
getMounts(): Promise<any>;
/**
* 获取文件系统,解析 diskutil list 输出为文件系统
*/
getFileSystems(): Promise<any>;
/**
* 获取网络连接,解析 netstat -an 输出为网络连接
*/
getNetworkConnections(): Promise<any>;
/**
* 获取默认网关,解析 route -n get default 输出为默认网关
*/
getDefaultGateway(): Promise<any>;
/**
* 获取进程列表,解析 ps -axo pid=,ppid=,comm=,%cpu=,%mem=,rss=,stat=,user=,args= 输出为进程列表
*/
getProcessList(): Promise<any>;
/**
* 杀死进程,解析 kill -${signal} ${pid} 输出为杀死进程
*/
killProcess(pid: number, signal?: string): Promise<boolean>;
/**
* 获取进程打开文件,解析 lsof -p ${pid} +c0 -Fn 输出为进程打开文件
*/
getProcessOpenFiles(pid: number): Promise<string[]>;
/**
* 获取进程环境变量,解析 ps eww ${pid} 输出为进程环境变量
*/
getProcessEnvironment(pid: number): Promise<Record<string, string>>;
/**
* 获取系统运行时间
*/
getSystemUptime(): Promise<any>;
/**
* 获取系统用户,解析 who 输出为系统用户
*/
getSystemUsers(): Promise<any>;
/**
* 获取系统服务,解析 launchctl list 输出为系统服务
*/
getSystemServices(): Promise<any>;
private parseDiskUsage;
/**
* 解析 iostat -d 输出为磁盘统计
*/
private parseDiskStats;
/**
* 解析 mount 输出为挂载点
*/
private parseMounts;
/**
* 解析 diskutil list 输出为文件系统
*/
private parseFileSystems;
/**
* 解析 netstat -an 输出为网络连接
*/
private parseNetworkConnections;
/**
* 解析 route -n get default 输出为默认网关
*/
private parseDefaultGateway;
/**
* 解析 lsof -p ${pid} +c0 -Fn 输出为进程打开文件
*/
private parseOpenFiles;
/**
* 解析 ps eww ${pid} 输出为进程环境变量
*/
private parseEnvironment;
private parseIostatDisks;
/**
* 解析 uptime 输出为系统运行时间
*/
private parseSystemUptime;
/**
* 解析 who 输出为系统用户
*/
private parseSystemUsers;
/**
* 解析 launchctl list 输出为系统服务
*/
private parseSystemServices;
}
//# sourceMappingURL=macos-adapter.d.ts.map