从 tar 存档中排除已挂载的文件夹

从 tar 存档中排除已挂载的文件夹

我们想要备份我们的服务器,这似乎很简单,除了一件事。目前我们使用类似这样的方法:

tar cvpjf 备份.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys /

一切都很好,但我们不想包含挂载点,因为几个 ftp 用户已经使用如下挂载点 chroot 访问他们的家:

mount --bind /var/www/文件夹 /home/user/html

有什么方法可以排除此类文件夹的备份吗?

答案1

使用适当的tar命令行选项:

       --one-file-system
              stay in local file system when creating archive

答案2

该选项--one-file-system确实有效,它只需要一些非常具体的语法。

tar -cvzf /mnt/backup.tar.gz --one-file-system /

有效,但是

tar --one-file-system -cvzf /mnt/backup.tar.gz /*

不会。这可能是因为 shell 通配符会导致选项被单独应用于 / 的每个子目录。因此 /proc 被包括在内,因为 /proc 中的所有内容确实是一个文件系统。

相关内容