I am working with a script that does system back up. One part of the script backs up /, /opt, and /usr/local. But isn't /opt and /usr/local under /? So why would the script back these up separately? I understand why /home is backed up separately since it's on a separate partition /dev/sda3. But /opt and /usr/local are both on same partition as root, /dev/sda2. Can someone explain why the root partition has multiple mount points and why filesystems that appear to be within a single file system are backed up separately?

Script snippet:

# these are on btrfs file systems so we must use tar
# /
# /opt
# /usr/local

  if [ $ITER -ne 0 ]; then SETERR $ITER; fi # main pid SETERR is redundant
  if [ "$1" = "." ];  then NAME=root; else NAME=$1; fi
  LOG "Starting tarball backup of $NAME in BG - $ITER"
  tar cfz $NOW/$NAME.tgz 2>> $EFILE --one-file-system $1
  if [ $? -ne 0 -o -s $EFILE ]; then WARN tarballing $NAME;
  else                               LOG Completed tar of $NAME; fi
  if [ $ITER -ne 0 ]; then CLEANERR; fi

if [ $PARM1 -eq 0 ]; then    # level 0 - weekly stuff
  sleep 10; ITERATE
  TARFS . &
  sleep 10; ITERATE
  (cd usr; TARFS local) &
  sleep 10; ITERATE
  TARFS opt                  # not in BG due to DB ops coming

Output from df -hT:

Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      btrfs      41G   16G   25G  39% /
devtmpfs       devtmpfs   64G  4.0K   64G   1% /dev
tmpfs          tmpfs      64G   76K   64G   1% /dev/shm
tmpfs          tmpfs      64G   67M   64G   1% /run
tmpfs          tmpfs      64G     0   64G   0% /sys/fs/cgroup
/dev/sda2      btrfs      41G   16G   25G  39% /.snapshots
/dev/sda2      btrfs      41G   16G   25G  39% /var/spool
/dev/sda2      btrfs      41G   16G   25G  39% /var/crash
/dev/sda2      btrfs      41G   16G   25G  39% /var/tmp
/dev/sda2      btrfs      41G   16G   25G  39% /usr/local
/dev/sda2      btrfs      41G   16G   25G  39% /var/opt
/dev/sda2      btrfs      41G   16G   25G  39% /var/lib/pgsql
/dev/sda2      btrfs      41G   16G   25G  39% /var/lib/named
/dev/sda2      btrfs      41G   16G   25G  39% /var/lib/mailman
/dev/sda2      btrfs      41G   16G   25G  39% /tmp
/dev/sda2      btrfs      41G   16G   25G  39% /srv
/dev/sda2      btrfs      41G   16G   25G  39% /opt
/dev/sda2      btrfs      41G   16G   25G  39% /boot/grub2/x86_64-efi
/dev/sda2      btrfs      41G   16G   25G  39% /boot/grub2/i386-pc
/dev/sda2      btrfs      41G   16G   25G  39% /var/log
/dev/sde1      xfs       1.0T  125G  899G  13% /Dbbkup
/dev/sdd1      xfs       1.0T   21G 1003G   3% /C
/dev/sda3      xfs       982G  1.3G  981G   1% /home
/dev/sdb1      xfs       1.0T  522G  502G  51% /D
/dev/sdc1      xfs       1.0T  325G  699G  32% /E

Output from lsblk:

fd0      2:0    1    4K  0 disk
sda      8:0    0    1T  0 disk
ââsda1   8:1    0    2G  0 part [SWAP]
ââsda2   8:2    0   40G  0 part /
ââsda3   8:3    0  982G  0 part /home
sdb      8:16   0    1T  0 disk
ââsdb1   8:17   0 1024G  0 part /D
sdc      8:32   0    1T  0 disk
ââsdc1   8:33   0 1024G  0 part /E
sdd      8:48   0    1T  0 disk
ââsdd1   8:49   0 1024G  0 part /C
sde      8:64   0    1T  0 disk
ââsde1   8:65   0 1024G  0 part /Dbbkup
sr0     11:0    1 1024M  0 rom
  • 2
    I think you should also included necessary part of that script. – Prvt_Yadav Apr 1 '19 at 15:03
  • 1
    Was the script written for the system that you are currently working on, or are the separation of / from /opt etc. in the script configurable, and are you expected to tweak this configuration maybe? – Kusalananda Apr 1 '19 at 15:05
  • 1
    Are you saying your script automatically decides to backup /opt separately or are you saying it is hard-coded / configured to do so? Have you checked the output of mount to see if / really is the same file system? – Philip Couling Apr 1 '19 at 15:05
  • @Thao When writing a comment, there is a small help link in the lower right corner. But if you want to clarify your question, you should do that in the question itself, by clicking the edit link. – Kusalananda Apr 1 '19 at 15:20
  • @Thao as has been suggested, you should include the appropriate code from the script. Please also add the output from the following: lsblk As for WHY the directories that are on the same filesystem are backed up separately, you should ask the script author. Filesystem mapping to block devices can vary drastically between each system. There may also be considerations for permissions. Asking "why did person X do something" is kind of off-topic. But if you give us enough technical detail we MAY be able to get some idea of what was going on. – 0xSheepdog Apr 1 '19 at 15:26

/opt and /usr/local/ are subvolumes in a btrfs filesystem (look for subvol= in /etc/fstab to confirm). Subvolumes are similar to partitions in that tar treats btrfs subvolumes as separate mount points and will skip them if the --one-file-system option is set. This is why (1) the sda2 partition appears as multiple mount points, and (2) when backing up /, /opt and /usr/local/ are skipped and must be backed up separately.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.