nachoparker / btrfs-du

Easily print BTRFS subvolume/snapshot disk usage
GNU General Public License v3.0
112 stars 17 forks source link

Option `-o` don't output snapshots insize snapshots #21

Open MurzNN opened 3 years ago

MurzNN commented 3 years ago

I use Snapper for manage snapshots, that creates structure like this:

- / (main subvolume)
- - /.snapshots (technical snapshot)
- - /.snapshots/N/snapshot (real snapshot)

Here is example from my real drive:

 btrfs subvolume list /mnt/btrfs
ID 257 gen 211 top level 5 path brick-files
ID 258 gen 211 top level 5 path brick-mysql
ID 302 gen 211 top level 258 path brick-mysql/.snapshots
ID 303 gen 110 top level 302 path brick-mysql/.snapshots/1/snapshot
ID 304 gen 113 top level 302 path brick-mysql/.snapshots/2/snapshot
ID 305 gen 211 top level 257 path brick-files/.snapshots
ID 312 gen 146 top level 305 path brick-files/.snapshots/1/snapshot
ID 336 gen 205 top level 302 path brick-mysql/.snapshots/5/snapshot
ID 337 gen 207 top level 305 path brick-files/.snapshots/3/snapshot

Command btrfs-du /mnt/btrfs shows me the mixed output with all snapshots:

# btrfs-du /mnt/btrfs 
Subvolume                                                         Total  Exclusive  ID        
─────────────────────────────────────────────────────────────────────────────────────────
brick-files                                                     9.73GiB  448.00KiB  257       
brick-mysql                                                    10.75GiB   48.00KiB  258       
brick-mysql/.snapshots                                         16.00KiB   16.00KiB  302       
brick-mysql/.snapshots/1/snapshot                              10.61GiB   16.00KiB  303       
brick-mysql/.snapshots/2/snapshot                              10.61GiB   16.00KiB  304       
brick-files/.snapshots                                         16.00KiB   16.00KiB  305       
brick-files/.snapshots/1/snapshot                               9.72GiB  608.00KiB  312       
brick-mysql/.snapshots/5/snapshot                              10.75GiB   48.00KiB  336       
brick-files/.snapshots/3/snapshot                               9.73GiB  176.00KiB  337       
─────────────────────────────────────────────────────────────────────────────────────────
Total exclusive data                                                          528.00KiB

But if I try to use -o option (print only subvolumes below specified path) - it shows me only one subvolume, example:

# btrfs-du -o /mnt/btrfs/brick-mysql
Subvolume                                                         Total  Exclusive  ID        
─────────────────────────────────────────────────────────────────────────────────────────
brick-mysql/.snapshots                                         16.00KiB   16.00KiB  302       
─────────────────────────────────────────────────────────────────────────────────────────
Total exclusive data                                                          448.00KiB

Is this a bug in script, or expected behavior?