Understanding --one-file-system more in-depth

Hi, I’m using restic to backup / of my Ubuntu server and naturally I’m using –one-file-system / -x to not backup e.g. mounted volumes.

I’m also explicitly excluding /mnt, /dev, /run, /proc, /sys and many more.

But reading the docs about excluding files I saw that -x also excludes “virtual filesystems” like /sys and /proc.

To investigate VFSes, I found cat /proc/filesystems and mount | grep -E 'proc|sysfs|tmpfs|devtmpfs.

To see if I can remove some of my excludes and defer them to -x I removed some of them and made a backup, then mounted the snapshot at /mnt/restic.

Curiously, I don’t find /mnt/restic in either /proc/filesystems or the filtered mount | grep …, but it does show up in unfiltered mount as restic on /mnt/restic type fuse (…).

Now one thing I’d like to know is if I removed /mnt from my excludes with this fuse filesystem mounted, would restic back it up?

Or more generally: Does restic ignore all paths I can see with mount?

And finally: Is there simpler method to check which files would be included in a backup compared to actually making one and inspecting the snapshot?

Edit: I found restic ls latest --ncdu | ncdu -f - in the docs, which skips having to mount the snapshot, but still requires creating one.

Thanks a lot for reading! :slight_smile:

1 Like

@FunctionDJ a simple methos to check which files would be included in a backup is to use the backup --dry-run option as explained in the documentation.

Assuming you haven a fresh empty repository so all files will be new and “added”, simply run:

restic -r /path/to/restic-repo backup / --dry-run -vv | grep "added"

1 Like