2.3 KiB
2.3 KiB
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
操作流程
- 确认本地目录:询问用户要上传的本地目录路径。如果用户未指定,默认使用当前工作目录。
- 确认远端子目录:询问文件上传到
/data下的哪个子目录。用户可直接回车表示上传到/data根下,也可指定子路径(如my-project则目标为/data/my-project)。 - 执行同步:使用
rsync通过 SSH 增量同步。 - 输出结果:显示同步完成的文件数量和远端路径。
同步命令
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 密钥认证:
- 提示用户执行
ssh-copy-id root@39.100.114.100配置免密登录 - 或使用
rsync不带 sshpass,让用户手动输入密码