Mac mini 7×24小时自动化部署全流程指南

一、部署前环境准备

1.1 硬件兼容性检查

Mac mini作为部署载体需满足以下条件:

  • 内存配置建议≥16GB(AI任务建议32GB)
  • 存储空间预留至少50GB可用空间(含系统及依赖)
  • 稳定电源供应(建议使用UPS设备)
  • 网络环境要求:固定IP或动态域名解析服务

1.2 系统版本要求

推荐使用macOS 12 Monterey及以上版本,可通过以下命令检查当前系统版本:

  1. sw_vers -productVersion

如需升级系统,可通过App Store或终端命令执行:

  1. softwareupdate --install --all

二、系统级优化配置(核心步骤)

2.1 电源管理策略

禁用系统休眠机制是保障7×24运行的基础,需执行以下组合命令:

  1. # 禁用所有休眠模式(包括显示器关闭)
  2. sudo pmset -a disablesleep 1
  3. sudo pmset -a hibernatemode 0
  4. sudo pmset -a standby 0
  5. # 验证配置结果
  6. pmset -g | grep -E 'sleep|hibernate|standby'

建议将上述配置写入/etc/rc.local实现持久化(需先启用rc.local服务)。

2.2 网络服务配置

2.2.1 远程管理通道

开启SSH服务需执行:

  1. sudo systemsetup -setremotelogin on
  2. # 验证服务状态
  3. sudo lsof -i :22

建议配置防火墙规则仅允许特定IP访问:

  1. sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
  2. sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/sbin/sshd

2.2.2 端口转发设置

如需外网访问,需在路由器配置NAT规则,将外部端口映射至Mac mini的22端口(建议修改默认SSH端口增强安全性)。

2.3 运行时环境准备

2.3.1 Node.js环境部署

推荐使用nvm进行多版本管理:

  1. # 安装nvm
  2. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
  3. # 加载nvm环境
  4. export NVM_DIR="$HOME/.nvm"
  5. [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
  6. # 安装指定版本
  7. nvm install 22
  8. nvm alias default 22

验证安装结果:

  1. node -v
  2. npm -v

2.3.2 依赖管理工具

推荐使用pnpm替代npm以提升依赖安装效率:

  1. curl -fsSL https://get.pnpm.io/install.sh | sh -

三、自动化应用部署

3.1 一键部署方案

执行官方提供的自动化脚本(需提前配置好执行权限):

  1. curl -fsSL https://example.com/deploy-script.sh | bash

脚本执行流程包含:

  1. 环境检测(Node版本、磁盘空间等)
  2. 依赖自动安装
  3. 服务进程守护配置
  4. 开机自启动注册

3.2 开发者部署方案

3.2.1 代码仓库克隆

  1. git clone https://example.com/project.git
  2. cd project

3.2.2 构建流程

  1. # 依赖安装
  2. pnpm install --frozen-lockfile
  3. # 生产环境构建
  4. pnpm build:prod
  5. # 构建结果验证
  6. ls -lh dist/

3.2.3 服务进程管理

推荐使用PM2进行进程守护:

  1. pnpm add -g pm2
  2. pm2 start dist/main.js --name "automation-service"
  3. pm2 save
  4. pm2 startup # 配置开机自启

四、运维监控体系

4.1 日志管理系统

配置日志轮转策略(需创建/etc/newsyslog.d/automation.conf):

  1. /path/to/logs/automation.log 644 7 * @T00 JC

4.2 资源监控方案

4.2.1 基础监控

  1. # 实时资源监控
  2. top -o cpu
  3. vm_stat 1 5 # 内存使用统计
  4. # 网络连接监控
  5. lsof -i | grep LISTEN

4.2.2 告警系统集成

可通过以下方式实现异常告警:

  1. 脚本定时检测关键进程
  2. 集成云服务商的监控告警服务
  3. 配置邮件/短信通知通道

4.3 定期维护任务

建议配置cron任务执行每日维护:

  1. # 编辑crontab
  2. crontab -e
  3. # 添加以下内容(每天3点执行)
  4. 0 3 * * * /path/to/maintenance-script.sh

维护脚本示例:

  1. #!/bin/bash
  2. # 日志清理
  3. find /var/log -name "*.log" -mtime +7 -delete
  4. # 依赖更新检查
  5. cd /path/to/project && pnpm check-updates
  6. # 系统更新
  7. softwareupdate --list

五、常见问题处理

5.1 进程意外终止

解决方案:

  1. 检查PM2日志:pm2 logs
  2. 验证资源使用情况
  3. 检查应用日志定位错误原因

5.2 网络连接中断

排查步骤:

  1. 测试基础网络连通性
  2. 检查防火墙规则
  3. 验证SSH服务状态

5.3 系统时间异常

同步时间服务配置:

  1. # 安装ntp服务
  2. brew install ntp
  3. # 启动服务
  4. sudo brew services start ntp
  5. # 手动同步
  6. sudo sntp -sS time.apple.com

六、性能优化建议

6.1 存储优化

  • 使用SSD替代HDD提升I/O性能
  • 启用TRIM功能(需APFS文件系统)
  • 配置临时目录到RAM disk(适合高频IO场景)

6.2 内存优化

  • 调整swap配置:
    1. sudo sysctl vm.swapusage
    2. sudo vm_stat 1 5
  • 监控内存泄漏:
    1. sudo dtrace -n 'syscall::malloc:entry { @num[execname] = count(); }'

6.3 网络优化

  • 启用TCP keepalive:
    1. sudo sysctl -w net.inet.tcp.always_keepalive=1
  • 调整TCP窗口大小:
    1. sudo sysctl -w net.inet.tcp.sendspace=65536
    2. sudo sysctl -w net.inet.tcp.recvspace=65536

通过上述完整部署方案,开发者可在Mac mini设备上构建稳定可靠的7×24小时自动化工作站。建议定期进行系统健康检查,并根据实际负载情况动态调整资源配置。对于企业级部署场景,可考虑结合容器化技术实现更高效的资源利用和故障隔离。