我想请求有关使用 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
。
祝你好运!