首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么‘`rsync`’和‘do’不正确地创建空文件?

为什么‘`rsync`’和‘do’不正确地创建空文件?
EN

Stack Overflow用户
提问于 2022-10-29 06:59:45
回答 1查看 35关注 0票数 -2

我正在Windows 10主机上通过rsync version 3.0.8运行cp 8.32git-bash。我有一个git服务器运行在一个容器中,它使用连接到主机的硬盘驱动器。现在,我尝试备份该服务器文件,无论我使用rsync还是cp,都会失败。

我可以将其缩小到硬盘上确实存在的文件,但是在传输时,它是作为备份驱动器上的空文件创建的。

以下是我所尝试的:

代码语言:javascript
复制
$ cd /backup_drive && \
>     rsync \
>     --verbose \
>     --checksum \
>     --archive \
>     --delete \
>     --progress \
>     "../server_drive/git-server/repo/objects/pack" \
>     "../backup_drive/server_drive/git-server/repo/objects"
sending incremental file list
pack/
pack/pack-558bb0397370ee5026dd0ce32579908064ed9e72.pack
   -24729119 100%    0.00kB/s    0:00:00 (xfer#1, to-check=2/5)

sent 319 bytes  received 41 bytes  48.00 bytes/sec
total size is 5794386858  speedup is 16095519.05

(使用cd是因为git-bash将自动添加冒号时出现问题)。

代码语言:javascript
复制
cp \
    --force \
    --recursive \
    --verbose \
    --update \
    "/server_drive/git-server/repo/objects/pack" \
    "/backup_drive/server_drive/git-server/repo/objects"

这两个命令都退出,0表示没有错误。但是,当我比较SHA-256散列时,它们显然是不同的,因为文件中缺少字节。

有趣的是,如果我手工复制Windows上的文件,它就能正常工作。

会导致什么后果?我如何通过rsynccp备份该文件?

EN

回答 1

Stack Overflow用户

发布于 2022-10-29 08:06:49

另一种选择是:

  • 触发器在您的"git服务器“容器中,该程序将执行git bundle

cd /path/to/baritory.git包创建reponame.bundle --all

  • 复制一个包文件作为备份.

复制一个文件要比许多小文件容易得多,其中一些文件可能由进程句柄保存,从而防止rsync访问/读取它们。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74243430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档