我以 root 身份通过以下命令创建备份(TODO 对吗?因为 roaima 观察到这可能会导致复杂化)在目录树中创建备份,该目录树在某些目录中具有循环符号链接;那些目录,tar
跳过。图1输出的命令1
root@masi:/home/masi# tar czf /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/
系统特点
$HOME/Documents/
masi@masi:~$ ls -ld /home/masi/Documents/ drwxr-xr-x 36 masi masi 4096 Nov 23 22:02 /home/masi/Documents/
$HOME
masi@masi:~$ echo $HOME /home/masi
图 1 命令 (1) 的输出 AND 命令 (2) 的输出(相同输出),图 2 主树
tarball 的特征
来自命令 1 的压缩包;命令2的情况相同。它表示
Documents
备份中没有目录。root@masi:/home/masi/Documents/bin# tar tzvf /media/masi/masiWeek/backup_home_22.12.2016.tar.gz | grep 'Documents/*$' root@masi:/home/masi/Documents/bin#
如果循环符号链接到目录,tar
则跳过该目录,在我的例子中,Documents
.其他目录,Downloads
然后再次备份。我想避免这种行为。您可以采取--deference
解决方法,但主要缺点是重复数据,即遵循我也想在备份中维护的符号链接。
命令2,但是失败,输出也是图1
# DopeGhoti
root@masi:/home/masi/Documents/bin# nice tar czf \
/media/masi/masiWeek/backup_home_22.12.2016.tar.gz \
--keep-directory-symlink $HOME/
命令3,但是失败,输出也与图1相同
root@masi:/home/masi# nice tar --keep-directory-symlink -czf \
/media/masi/masiWeek/backup_home_22.12.2016.tar.gz $HOME/
操作系统:Debian 8.5
相关:在线程中恢复这样的备份如何将主备份恢复到几乎全新的 Debian?
答案1
在评论中,您确认您正在以用户身份root
而不是您自己的身份运行备份。当你成为root
用户时,你的价值$HOME
也会发生变化。 (这受到你成为的方式的影响root
。)
因此,当您运行时,tar cvf /tmp/backup.tar $HOME
您会$HOME
获得root
.你的问题中非常令人困惑的是什么(以及链接一) 是你一直在交换$HOME
和/home/masi
。
要备份,/home/masi
您应该使用类似的东西tar cvf /tmp/backup.tar /home/masi
。或者改变您成为用户的方式root
,这样$HOME
就不会改变。
当您备份正确的目录树时,我怀疑您会找到丢失的Documents
文件夹。