mor*_*ous 92 bash gzip tar ubuntu
我编写了一个小脚本,可以对目录 + 文件列表进行 tar 和压缩。
该脚本似乎成功运行,因为在脚本运行后创建了一个可用的 .tar.gz 文件。
但是,脚本完成后我收到了这条烦人的消息:
tar:由于先前的错误而以失败状态退出
脚本运行时我没有看到任何错误消息,就像我说的那样,生成的文件可以在没有警告/错误的情况下解压缩。由于我将此用作备份的一部分,因此我想确保我没有忽略一些严重的事情。
产生此错误/警告消息的可能原因是什么 - 我可以安全地忽略它吗?。如果我不能忽略它,诊断和解决错误的步骤是什么?
我在 Ubuntu 10.0.4 上运行
Kei*_*thB 118
如果由于任何原因 tar 无法将所有指定的文件添加到 tar 中,您将收到该消息。最常见的一种情况是没有对其中一个文件的读取权限。这可能是一个大问题,因为您正在使用它进行备份。如果您正在使用该-v标志,请尝试将其关闭。这应该会减少输出并让您看到发生了什么。
小智 30
问题是f论证。它将下一个值作为文件名,因此它必须是最后一个参数:
tar cvzf output.tgz folder
Run Code Online (Sandbox Code Playgroud)
或者:
tar -cvzf output.tgz folder
Run Code Online (Sandbox Code Playgroud)
这些都是相同的,不会产生错误。
小智 10
有时备份在备份期间可能会更改的文件(如日志文件),您可能会发现 tar 选项 '--ignore-failed-read' 很有用(我使用的是 Debian Linux,不确定非 gnu tar)。
标准输出和错误可以在 2 个不同的文件中重定向,例如:
LOGDIR='/var/log/mylogdir'
LOG=${LOGDIR}/backup.log
ERRLOG=${LOGDIR}/backup.error.log
DATE=$(date +%Y-%m-%d)
HOSTNAME=$(hostname)
DATA_DIRS='/etc /home /root'
tar --ignore-failed-read -f ${BACKUP_DIR}/${HOSTNAME}-${DATE}.tgz -cvz ${DATA_DIRS} > $LOG 2> $ERRLOG
Run Code Online (Sandbox Code Playgroud)
我发现这通常是安全的,但请小心,因为焦油不会停止......
小智 6
我遇到了同样的问题,以上答案都不适合我。但是,我发现运行以下命令有效:
tar -cpzf /backups/fullbackup.tar.gz --exclude=backups --exclude=proc --exclude=tmp --exclude=mnt --exclude=sys --exclude=dev --exclude=run /
tar: Exiting with failure status due to previous errors可以通过关闭 -v 选项来识别被引用的错误。经审查,从错误的目录一样来/run和/sys。
通过排除这些目录,它工作得很好。希望这可以帮助任何有类似问题的人。
| 归档时间: |
|
| 查看次数: |
206570 次 |
| 最近记录: |