AI创想
标题:
NUC 无显示器部署 OpenClaw:纯命令行远程管理
[打印本页]
作者:
米落枫
时间:
3 小时前
标题:
NUC 无显示器部署 OpenClaw:纯命令行远程管理
作者:一键难忘
8.1 创建远程管理脚本
#!/bin/bashLOG_FILE="/var/log/nuc-remote-management.log"ALERT_EMAIL="admin@example.com"log(){echo"[$(date'+%Y-%m-%d %H:%M:%S')] $1">>$LOG_FILE}send_alert(){localsubject=$1localmessage=$2echo"$message"| mail -s "$subject"$ALERT_EMAIL}check_network(){
log "Checking network connection..."ping -c 48.8.8.8 > /dev/null 2>&1if[$? -eq 0];then
log "Network connection is normal"return0else
log "Network connection failed"return1fi}check_ssh(){
log "Checking SSH service..."if systemctl is-active --quiet ssh;then
log "SSH service is running"return0else
log "SSH service is not running"return1fi}check_docker(){
log "Checking Docker service..."if systemctl is-active --quiet docker;then
log "Docker service is running"return0else
log "Docker service is not running"return1fi}check_openclaw(){
log "Checking OpenClaw service..."cd /opt/openclaw/openclaw
ifdocker-composeps|grep -q "Up";then
log "OpenClaw service is running"return0else
log "OpenClaw service is not running"return1fi}check_database(){
log "Checking database connection..."ifdockerexec openclaw-postgres pg_isready -U openclaw;then
log "Database connection is normal"return0else
log "Database connection failed"return1fi}check_redis(){
log "Checking Redis connection..."ifdockerexec openclaw-redis redis-cli ping|grep -q PONG;then
log "Redis connection is normal"return0else
log "Redis connection failed"return1fi}check_api(){
log "Checking OpenClaw API..."localresponse=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/api/health)if["$response"="200"];then
log "API is responding normally"return0else
log "API is not responding (HTTP $response)"return1fi}check_system_resources(){
log "Checking system resources..."# 检查 CPU 使用率localcpu_usage=$(top -bn1 |grep"Cpu(s)"|awk'{print $2}'|cut -d'%' -f1)
log "CPU Usage: ${cpu_usage}%"if(( $(echo "$cpu_usage >80" | bc -l)));then
log "High CPU usage detected: ${cpu_usage}%"
send_alert "High CPU Usage""CPU usage is ${cpu_usage}% on NUC"fi# 检查内存使用率localmem_usage=$(free|grep Mem |awk'{printf("%.0f"), $3/$2 * 100.0}')
log "Memory Usage: ${mem_usage}%"if[$mem_usage -gt 80];then
log "High memory usage detected: ${mem_usage}%"sync&&echo3> /proc/sys/vm/drop_caches
send_alert "High Memory Usage""Memory usage is ${mem_usage}% on NUC"fi# 检查磁盘使用率localdisk_usage=$(df -h /data |tail -1 |awk'{print $5}'|cut -d'%' -f1)
log "Disk Usage: ${disk_usage}%"if[$disk_usage -gt 80];then
log "High disk usage detected: ${disk_usage}%"docker system prune -f
send_alert "High Disk Usage""Disk usage is ${disk_usage}% on NUC"fi}restart_ssh(){
log "Restarting SSH service..."sudo systemctl restart sshif systemctl is-active --quiet ssh;then
log "SSH service restarted successfully"return0else
log "Failed to restart SSH service"return1fi}restart_docker(){
log "Restarting Docker service..."sudo systemctl restart dockerif systemctl is-active --quiet docker;then
log "Docker service restarted successfully"return0else
log "Failed to restart Docker service"return1fi}restart_openclaw(){
log "Restarting OpenClaw service..."cd /opt/openclaw/openclaw
docker-compose restart
sleep30ifdocker-composeps|grep -q "Up";then
log "OpenClaw service restarted successfully"return0else
log "Failed to restart OpenClaw service"return1fi}restart_database(){
log "Restarting database..."docker restart openclaw-postgres
sleep10ifdockerexec openclaw-postgres pg_isready -U openclaw;then
log "Database restarted successfully"return0else
log "Failed to restart database"return1fi}restart_redis(){
log "Restarting Redis..."docker restart openclaw-redis
sleep5ifdockerexec openclaw-redis redis-cli ping|grep -q PONG;then
log "Redis restarted successfully"return0else
log "Failed to restart Redis"return1fi}main(){
log "=== NUC Remote Management Started ==="
check_network
if[$? -ne 0];then
log "Network check failed, attempting to fix..."sudo systemctl restart networking
sleep10
check_network
fi
check_ssh
if[$? -ne 0];then
log "SSH check failed, restarting..."
restart_ssh
fi
check_docker
if[$? -ne 0];then
log "Docker check failed, restarting..."
restart_docker
fi
check_openclaw
if[$? -ne 0];then
log "OpenClaw check failed, restarting..."
restart_openclaw
fi
check_database
if[$? -ne 0];then
log "Database check failed, restarting..."
restart_database
fi
check_redis
if[$? -ne 0];then
log "Redis check failed, restarting..."
restart_redis
fi
check_api
if[$? -ne 0];then
log "API check failed, restarting OpenClaw..."
restart_openclaw
fi
check_system_resources
log "=== NUC Remote Management Completed ==="}
main
复制代码
添加执行权限:
sudochmod +x /usr/local/bin/nuc-remote-management.sh
复制代码
配置定时任务:
crontab -e
# 添加每 10 分钟执行一次管理
*/10 * * * * /usr/local/bin/nuc-remote-management.sh
复制代码
九、故障排查
9.1 网络连接问题
# 检查网络接口ip addr show
# 检查网络连接ping8.8.8.8
# 检查 DNS 解析nslookup google.com
# 重启网络服务sudo systemctl restart networking
# 检查路由表ip route show
复制代码
9.2 SSH 连接问题
# 检查 SSH 服务状态sudo systemctl status ssh# 查看 SSH 日志sudo journalctl -u ssh -n 50# 重启 SSH 服务sudo systemctl restart ssh# 检查 SSH 配置sudo sshd -t
# 检查防火墙sudo ufw status
复制代码
9.3 Docker 服务问题
# 检查 Docker 服务状态sudo systemctl status docker# 查看 Docker 日志sudo journalctl -u docker -n 50# 重启 Docker 服务sudo systemctl restart docker# 检查 Docker 版本docker --version
# 测试 Dockerdocker run hello-world
复制代码
9.4 OpenClaw 服务问题
# 检查 OpenClaw 服务状态cd /opt/openclaw/openclaw
docker-composeps# 查看 OpenClaw 日志docker-compose logs -f
# 重启 OpenClaw 服务docker-compose restart
# 重新构建 OpenClawdocker-compose up -d --build
# 检查容器资源使用docker stats
复制代码
十、总结
通过以上步骤,我们成功实现了 NUC 无显示器部署 OpenClaw,并通过纯命令行远程管理。
10.1 主要优势
成本低廉
:无需购买显示器
节省空间
:NUC 体积小,易于放置
易于管理
:通过 SSH 远程管理
稳定可靠
:Linux 系统稳定
节能环保
:功耗低,适合长期运行
10.2 注意事项
定期检查网络连接定期备份重要数据定期更新系统和软件定期监控系统资源定期清理日志和缓存
10.3 后续扩展
可以进一步扩展功能:
添加 Web 管理界面添加监控告警系统添加自动化运维脚本添加内网穿透服务添加更多 AI 模型
希望这篇教程能帮助大家成功实现 NUC 无显示器部署 OpenClaw,并通过纯命令行远程管理!
(, 下载次数: 0)
上传
点击文件名下载附件
原文地址:https://blog.csdn.net/weixin_52908342/article/details/158184078
欢迎光临 AI创想 (https://llms-ai.com/)
Powered by Discuz! X3.4