Files
2026-05-14 16:56:48 +08:00

2.3 KiB
Raw Permalink Blame History

name, description, trigger
name description trigger
remote-sync 将本地项目目录通过 rsync 增量同步到远端服务器 39.100.114.100:/data。自动排除 node_modules/.git 等文件。需通过 `/remote-sync` 显式调用。本技能为项目级,仅对 /home/zdh/projects 目录下的文件生效。 manual

项目部署技能

使用说明

通过 /remote-sync 调用,将本地目录增量同步到远端服务器。本技能仅在 /home/zdh/projects 目录下可用。

远端目标

  • 服务器: 39.100.114.100
  • 用户: root
  • 密码: QQmm3721
  • 远端路径: /data/projects

操作流程

  1. 确认本地目录:询问用户要上传的本地目录路径。如果用户未指定,默认使用当前工作目录。
  2. 确认远端子目录:询问文件上传到 /data 下的哪个子目录。用户可直接回车表示上传到 /data 根下,也可指定子路径(如 my-project 则目标为 /data/my-project)。
  3. 执行同步:使用 rsync 通过 SSH 增量同步。
  4. 输出结果:显示同步完成的文件数量和远端路径。

同步命令

sshpass -p 'QQmm3721' rsync -avz --delete \
  --exclude 'node_modules' \
  --exclude '.git' \
  --exclude '.next' \
  --exclude '.nuxt' \
  --exclude '.cache' \
  --exclude 'dist' \
  --exclude '*.log' \
  --exclude '.env' \
  --exclude '.env.*' \
  --exclude 'coverage' \
  --exclude '.DS_Store' \
  --exclude 'Thumbs.db' \
  -e "ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10" \
  <本地目录>/ \
  root@39.100.114.100:/data/<远端子目录>/

说明

  • --delete:远端删除本地已不存在的文件,保持镜像一致
  • -avz:归档模式 + 显示详情 + 压缩传输
  • StrictHostKeyChecking=no:避免首次连接交互确认
  • 末尾 / 不可省略,表示同步目录内容而非目录本身

依赖检查

首次执行前检查 sshpass 是否已安装:

which sshpass

如未安装,提示用户执行:

sudo apt install -y sshpass    # Debian/Ubuntu
# 或
sudo yum install -y sshpass    # CentOS/RHEL

无 sshpass 降级方案

若无法安装 sshpass,退回到交互式 SSH 密钥认证:

  1. 提示用户执行 ssh-copy-id root@39.100.114.100 配置免密登录
  2. 或使用 rsync 不带 sshpass,让用户手动输入密码