# node-ssh-sync **Repository Path**: liuhongbin/node-ssh-sync ## Basic Information - **Project Name**: node-ssh-sync - **Description**: 使用node开发的ssh文件同步工具 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-07 - **Last Updated**: 2025-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README SSH 实时同步工具 基于 SSH,监听本地目录变更并将文件通过命令流式写入远端(非 SFTP)。 快速开始 1. 安装依赖 ```bash pnpm install ``` 2. 复制配置模板 ```bash cp env.example .env ``` 3. 编辑 .env ```ini SSH_HOST=192.168.1.2 SSH_PORT=22 SSH_USER=root # SSH_PASSWORD=your-password # 或使用私钥 # SSH_KEY_PATH=C:/Users/you/.ssh/id_rsa # SSH_PASSPHRASE= LOCAL_ROOT=../gs_demo_thinkphp/addons/gs_demo # 使用绝对路径 REMOTE_ROOT=/www/wwwroot/demo.dkyx.cc/addons/gs_demo WATCH_MODE=true SYNC_DELAY=200 EXCLUDE_PATTERNS=node_modules,.git,.DS_Store,*.log,*.tmp # 是否同步删除(默认 true,设为 false 则忽略本地删除) SYNC_DELETE=true ``` 4. 启动监听 ```bash pnpm dev # 或 pnpm start ``` 行为说明 - 保存/变动本地文件会自动通过 base64 -d > 远端文件 写入到远程。 - 删除本地文件会执行 rm -f 远端文件。 - 会自动 mkdir -p 创建远端目录。 - 可通过 SYNC_DELETE=false 禁止同步删除。 权限与所有者 - 可在 .env 配置上传后的权限与所有者(可选): ```ini # 设置文件拥有者与权限(可选) REMOTE_OWNER=www-data REMOTE_GROUP=www-data REMOTE_MODE=664 # 需要 sudo 时: USE_SUDO=true ``` - 若目标服务器要求非 root 写入,建议使用具有写权限的业务用户或在 USE_SUDO=true 下配合 sudoers 放行 chown/chmod。 常见问题 - 远端需有 base64 命令;若没有,可改用 cat > 并进行转义。 - 权限不足请检查远端目录写入权限与账号权限。 目前权限那还有用户不知道为啥没效果,懒得折腾了,你们研究研究