You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Actions自动部署失败:rsync文件IO错误求助

GitHub Actions自动部署到服务器失败排查与修复

问题描述

我尝试通过GitHub Actions将代码自动部署至主机服务器时出现错误,错误日志截图如下:
Error logs

我的Workflow配置文件内容如下:

name: Prosperium Production CI
on:
    push:
        branches:
            - main
jobs:
    build:
        runs-on: ubuntu-latest
        steps:
            - name: Check-out do repositório
              uses: actions/checkout@v1
            - name: Deploy Ambiente de Produção
              uses: easingthemes/ssh-deploy@main
              env:
                SSH_PRIVATE_KEY: ${{secrets.SERVER_SSH_KEY}}
                ARGS: "-rltgoDzvO --delete"
                SOURCE: "/"
                REMOTE_HOST: ${{secrets.REMOTE_HOST}}
                REMOTE_USER: ${{secrets.REMOTE_USER}}
                REMOTE_PORT: ${{secrets.REMOTE_PORT}}
                TARGET: ${{secrets.REMOTE_TARGET}}

我已经尝试修改REMOTE_PATH和SOURCE参数,但问题仍未解决,请求技术支持。


问题分析

从错误截图可见,这是rsync执行时的权限问题:无法删除服务器上的部分文件/目录,rsync退出码23通常代表部分文件操作失败(比如权限不足、文件被占用)。另外你的SOURCE: "/"配置存在致命问题——这会尝试同步GitHub Runner的整个根目录,而非你的代码仓库目录,这是引发问题的核心原因之一。

修复步骤

  1. 修正SOURCE参数
    把SOURCE改为代码仓库的根目录(./),如果是前端项目需要部署构建产物,可指定具体子目录(比如./dist/):

    SOURCE: "./"
    
  2. 检查服务器目标目录权限

    • 确认REMOTE_TARGET对应的服务器目录,所有者是REMOTE_USER,或该用户拥有该目录下文件的读写、删除权限。
    • 如果目标目录有需要保留的文件(如配置文件、环境变量文件),在ARGS中添加--exclude排除,避免rsync尝试删除:
      ARGS: "-rltgoDzvO --delete --exclude='config.php' --exclude='.env'"
      
  3. 调整rsync参数
    当前ARGS中的--delete会删除目标目录中源目录不存在的文件,若服务器有自动生成的日志、缓存文件,可去掉--delete,或用--delete-excluded配合--exclude精准控制。添加--verbose能获取更详细的错误日志,方便定位具体问题文件:

    ARGS: "-rltgoDzvO --verbose --delete"
    
  4. 升级checkout Action版本
    你使用的actions/checkout@v1版本过旧,建议升级到最新稳定版v4,规避潜在兼容性问题:

    - name: Check-out do repositório
      uses: actions/checkout@v4
    
  5. 验证SSH密钥配置
    确保SERVER_SSH_KEY对应的私钥完整粘贴到GitHub Secrets中(包含首尾的密钥标识行),且服务器的authorized_keys已正确配置该公钥,同时密钥对应的用户拥有操作目标目录的权限。

验证方法

修改配置后,在GitHub仓库的Actions页面手动触发该Workflow,查看详细执行日志,确认rsync命令是否正常运行。若仍有错误,根据日志中提示的具体文件路径,针对性调整权限或排除规则。

内容的提问来源于stack exchange,提问作者Jardel Lazzarotto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:25:20