我正在运行以下序列以进行备份:
$> set -o pipefail
$> tar -c /vary/large/folder1 /very/large/folder2 | xz ... | gpg ... | aws ...
$> echo "${PIPESTATUS[0]} ${PIPESTATUS[1]} ${PIPESTATUS[2]} ${PIPESTATUS[3]}"
1 0 0 0
当我tar
在较小的目录上运行时,返回值始终为0
.但是当我尝试备份较大的文件夹(+10G
)时,返回值始终是1
。状态的联机帮助页tar
:
返回值 1 某些文件有所不同。如果使用 --compare (--diff, -d) 命令行选项调用 tar,则意味着存档中的某些文件与其磁盘对应文件不同。如果为 tar 指定了 --create、--append 或 --update 选项之一,则此退出代码意味着某些文件在存档时已更改,因此生成的存档不包含文件集的精确副本。
我该如何防止tar
返回1
破坏备份脚本的顺序?我想要/需要忽略备份期间已更改的文件,那么如何忽略不同的文件?是否有任何“最佳方法”来处理巨大的目录tar
- 您将如何解决此错误?
提前致谢。