当我运行脚本来使用选项“--listed-incremental”调用 tar 时,出现了分段错误。我有一个循环,解析 6 个文件系统(普通分区和 LVM 逻辑卷的组合)以及一个子目录。第一次运行脚本时,一切正常,所有 tar 文件和 snar(快照)文件都已创建。第二次运行脚本时,它应该根据 snar 文件的更改创建增量 tar 文件。每个文件系统备份都因分段错误而崩溃,但子目录备份处理正常。以下是脚本输出(我在 tar 调用之前使用 echo 来打印出 tar 参数,并在 tar 调用后打印出退出代码):
tar --create --one-file-system --no-check-device --auto-compress --warning=no-file-ignored --file=/home/randy/Backup/home4/pictures/update-week-40-to-43/Pictures-week-40-to-43.1.tar /home/randy/Pictures --listed-incremental=/home/randy/Backup/home4/pictures/update-week-40-to-43/Pictures-week-40-to-43.snar
/home/randy/Backup/bkup-scripts2/source/bkupf-tar-backup.sh: line 361: 8831 Segmentation fault (core dumped) tar "${archive_opts_a[@]}" "${file_opt}" "${source_directory}" "${exclude_opt}" "${increment_opt}" &>> "${gc_logfile}"
>>> ERROR in creating tar update. Error value: 139
第361行是tar命令所在函数的声明行。
我可以不使用“--listed-incremental”选项运行 tar,它运行得很好,没有任何问题。只有当我使用此选项时才会出现问题。
我对此进行了一些研究并找到了此链接
https://ubuntuforums.org/showthread.php?t=2295549
但该人能够通过从另一个位置复制 tar 版本来解决问题。我进行了清理/检查/自动删除/更新/升级,但都不起作用。我在 Ubuntu 14.04(内核 3.19.0-28)和 Xubuntu 16.04(内核 4.04-43)中都运行了此操作,结果相同。
我做了一些研究,发现了一个错误报告
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/687594
从 2010 年开始,有人指出在 tar 版本 1.23 中发现了一个错误,并创建了一个补丁,然后修复了它。那是 6 年前的事了,我现在遇到了完全相同的问题(tar 版本 1.28.2-1)。这么多年过去了,这个问题突然又出现了吗?我想我并不是唯一一个使用“--listed-incremental”选项的人。我的命令行有问题吗?