我看到这个错误,不知道为什么所有文件大小都是 0。
命令:
rsync -arvzh --delete public/ [email protected]:/var/www/blog/static-html/
版本信息:
- GitHub action VM源操作系统是macOS 10.15
- 目标操作系统是 CentOS 7 x64
在我的 Mac 上,一切正常,但当我使用 时scp
,问题又出现了。所以我认为这不是命令问题。也许是ssh
?
这是我的完整配置:
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Node.js CI
on:
push:
branches: [ source ]
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
tags:
description: 'Test scenario tags'
jobs:
build:
runs-on: ubuntu-20.04
strategy:
matrix:
node-version: [12.20.0]
steps:
- name: Git checkout
uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Cache
uses: actions/[email protected]
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
- name: Install Dependencies
run: |
yarn install
npm install [email protected] -g
- name: Build
run: |
hexo clean
hexo g --silent
export HEXO_ALGOLIA_INDEXING_KEY=fb41a459b46e7dda7af65d45ad5f8432
hexo algolia
- name: SSH agent
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.BLOG_DEPLOY_KEY }}
- name: Deploy VPS
run: |
ssh-keyscan 1991421.cn >> ~/.ssh/known_hosts
rsync -az -vv --delete -e 'ssh -p 22' public [email protected]:/var/www/blog
- name: Notify
uses: appleboy/telegram-action@master
with:
to: ${{ secrets.TELEGRAM_TO }}
token: ${{ secrets.TELEGRAM_TOKEN }}
message: Blog deployment and update completed!
photo: .github/workflows/blog-logo.png
答案1
使用 Homebrew 在 macOS 中安装 Rsync 的更新版本。
我认为这是由于 GNU 许可问题导致 macOS 上的默认 Rsync 版本过时的问题。
的默认 macOS 版本rsync
存在于此路径中/usr/bin/rsync
,并且当运行此命令时具有此版本/usr/bin/rsync --version
rsync version 2.6.9 protocol version 29
我相信由于您的路径包含非西方/中文字符,这个旧版本的 2.6.9 版 Rsync 会无法处理这些字符。
你可以在 macOS 上使用更新版本的 Rsync,方法是通过以下方式安装自制。只需打开终端会话并输入以下命令即可安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
然后运行此命令:
brew install rsync
一旦该命令完成了它要做的事情,就会在这里安装一个更新版本的 Homebrew,你可以通过运行来检查安装的版本,/usr/local/bin/rsync --version
运行结果如下:
rsync version 3.2.3 protocol version 31
我使用完整路径进行版本检查,但是在运行 Homebrew 安装命令之后,您只需运行rsync --version
检查版本并which rsync
检查系统首选哪个版本的 Rsync。
答案2
看着屏幕截图,我认为这很可能是由于该文件夹中无法识别的 Unicode 字符造成的。
您可以尝试在没有此类字符的文件夹,看看 rsync 是否有效。