Rsync 命令不从 /snap 目录复制文件

Rsync 命令不从 /snap 目录复制文件

我对在 Raspberry Pi 中运行的 Ubuntu 22.04 操作系统进行了 rsync 备份。备份为与 SD 卡相同分区和格式的映像文件。后来我挂载了备份镜像文件,也取出了SD卡并挂载了它。

安装在备份映像上的根分区 安装/media/writable
在 SD 卡上的根分区/media/writable1

当我列出文件目录时,我可以看到有些文件在那里,但不在源 SD 卡中。

[flex@flex-inspiron7520 ~]$ ls -l /media/writable/snap/core20/1437/etc/default
total 28
-rw-r--r-- 1 root root  460 Feb  4  2020 cryptdisks
-rw-r--r-- 1 root root  297 Sep 30  2019 dbus
-rw-r--r-- 1 root root   15 Mar 29 20:47 locale
-rw-r--r-- 1 root root 1756 Apr 14  2020 nss
-rw-r--r-- 1 root root  133 Dec  2 22:38 ssh
-rw-r--r-- 1 root root   35 Mar 29 20:47 swapfile
-rw-r--r-- 1 root root 1118 Feb  7  2020 useradd

[flex@flex-inspiron7520 ~]$ ls -l /media/writable1/snap/core20/1437/etc/default
ls: cannot access '/media/writable1/snap/core20/1437/etc/default': No such file or directory

我对 rsync 命令进行了一次试运行,它告诉我它将从源(备份映像)复制目标(SD 卡)中缺少的文件。

[flex@flex-inspiron7520 ~]$ sudo rsync -nrlpgoDv /media/writable/snap/core20/1437/etc/default /media/writable1/
sending incremental file list
default/
default/cryptdisks
default/dbus
default/locale
default/nss
default/ssh
default/swapfile
default/useradd

sent 205 bytes  received 41 bytes  492.00 bytes/sec
total size is 3,814  speedup is 15.50 (DRY RUN)

顺便说一句,与该卡的备份相比,目标 SD 卡中文件丢失的原因是因为当 sd 卡连接到 Pi 并且操作系统正在运行时,文件就在那里......它们是快照应用程序仅当操作系统运行时才安装在 /snap 中。

但这不是我的问题!

我的问题

当我运行此 rsync 命令时,它会向我提供有关计划从源(备份映像)复制到目标(SD 卡)的文件的输出

sudo rsync -nrlpgoDv /media/writable /media/writable1/

有很多文件要传输,这只是前几行......

writable/var/lib/dpkg/info/python3.10-minimal.list
writable/var/lib/dpkg/info/python3.10-minimal.md5sums
writable/var/lib/dpkg/info/python3.10-minimal.postinst
writable/var/lib/dpkg/info/python3.10-minimal.postrm
writable/var/lib/dpkg/info/python3.10-minimal.preinst
writable/var/lib/dpkg/info/python3.10-minimal.prerm
writable/var/lib/dpkg/info/python3.10.list
writable/var/lib/dpkg/info/python3.10.md5sums
.
..
....
.....

writable/snap/但是...输出中没有...行?为什么这个 rsync 命令没有列出与上面相同的文件,这些文件/media/writable/snap/core20/1437/etc/default/media/writable1/snap/core20/1437/etc/default.

显然,“/snap”目录是循环设备的一组挂载点,引用位于“/var/lib/snapd/”中的 snap 应用程序。我不确定这是否相关?

更新

可能是因为两个文件系统的挂载方式有关?备份映像以只读方式安装,但 SD 卡以读写方式安装?但我的 rsync 命令尝试从备份映像进行复制,因此可能不相关?

[flex@flex 1437]$ mount | grep writable
/dev/loop0p2 on /media/writable type ext4 (ro,nosuid,nodev,relatime,errors=remount-ro,uhelper=udisks2)
/dev/sdb2 on /media/writable1 type ext4 (rw,nosuid,nodev,relatime,errors=remount-ro,uhelper=udisks2)

非常感谢任何帮助,

柔性

答案1

事实证明根本没有发生任何异常情况。

我将 Rsync 命令的输出从 KDE Konsole 窗口(文件 > 将输出另存为)保存到文本文件以查看 rsync 输出,但我猜终端仅在其缓冲区中保留一定数量的输出行。我将 rsync 命令更改为:

sudo rsync -nrlpgoDivv --log-file=/home/flex/scripts/rsynclog.log /mnt/src_root /media/writable1/

我现在可以看到 rsync 确实想要将任何丢失的文件/文件夹的内容从rootfs/snap/...源复制到目标。无论源文件系统安装为只读还是读写,该命令都会给出相同的结果。

这并不重要,因为我现在会是这样不包括 /snap 目录从备份中删除,因为不需要。

柔性

相关内容