使用 rsync 以相同的权限递归备份 /home 文件夹

使用 rsync 以相同的权限递归备份 /home 文件夹

我想请求有关使用 rsync 的信息。我尝试阅读手册,但示例太少,让我感到困惑。

我不需要高级功能或实时同步或远程源或远程目标。一切都使用 ext4。只需使用我的笔记本电脑的硬盘和 USB 上的外部硬盘。在 Ubuntu 上。

我的最终目标是将 /home 的内容移至外部驱动器。清除我的笔记本电脑,将其切换到 LVM,重新安装 Ubuntu,更新,安装我之前安装的相同程序,然后启动实时 USB 并将我备份的 /home(现在位于我的外部硬盘上)的内容复制到新安装的 /home(使用与上次相同的用户名和 uid 安装)。

我想保持所有权限和所有权不变。

我尝试将所有内容复制粘贴到外部驱动器上,但收到错误消息。我知道从实时 USB 上的 GUI 进行复制粘贴会将所有内容更改为 root 所有权(这将是双重不利的)。

我在手册页中看到了所有这些标志...而我所理解的都是rsync /home/jonathan /media/jonathan/external-drive/home/jonathan来自rsync /source/file/path /destination/file/path

我已经使用此硬盘备份了大多数文件夹和电影等大文件。有没有办法复制粘贴我想要的内容,同时保存权限,只添加迄今为止被忽略的 .config 文件并只更改已更改的文件?我希望能够每周手动执行一次此操作以备份设置和我的个人文件,以防我需要在紧急情况下重新安装或硬盘出现故障。

感谢您的任何帮助

答案1

最简单的方式是使用实时 USB 并使用-a标志rsync

这个标志(我认为-a代表存档)保留所有文件和文件夹属性,包括权限。

进入实时会话后,插入外部驱动器并使用sudo blkid查看哪些驱动器与 中的哪些设备相对应/dev。您可能会发现实时 USB 是/dev/sda,而笔记本电脑的 HDD 是/dev/sdb,也许外部驱动器是/dev/sdc。我假设这些是驱动器名称,但您的驱动器名称可能会有所不同。

为您的笔记本电脑和外部驱动器创建子文件夹:

sudo mkdir /mnt/laptop
sudo mkdir /mnt/external

然后安装驱动器并在外部驱动器中创建一个文件夹(如果不存在):

sudo mount /dev/sdb /mnt/laptop
sudo mount /dev/sdc /mnt/external
sudo mkdir /mnt/external/home

然后使用rsync以存档模式复制数据:

sudo rsync -av /mnt/laptop/home/jonathan /mnt/external/home

确保在原始文件夹名称中不使用尾随斜杠,这样才能rsync使用正确的权限创建它。

移动到外部驱动器中的文件夹:

cd /mnt/external/home/jonathan

并检查文件权限是否被保留ls -la

祝你好运!

相关内容