システムバックアップを実行するスクリプトを使用しています。このスクリプトの一部は、/、/opt、/usr/local をバックアップします。しかし、/下に/optと/usr/localがありませんか?それでは、スクリプトがそれらを別々にバックアップするのはなぜですか? /homeが別々のパーティション/ dev / sda3にあるので、別々にバックアップされる理由を理解してください。ただし、/opt と /usr/local はどちらもルート /dev/sda2 と同じパーティションにあります。ルートパーティションに複数のマウントポイントがある理由と、単一のファイルシステム内にあるファイルシステムが別々にバックアップされているように見える理由を誰かが説明できますか?
スクリプトの断片:
# these are on btrfs file systems so we must use tar
# /
# /opt
# /usr/local
TARFS() {
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
fi
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
lsblkの出力:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
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
答え1
/opt および /usr/local/ は btrfs ファイルシステムのサブボリュームです (確認するには /etc/fstab で subvol= を探します)。サブボリュームはパーティションと似ており、tar
btrfsサブボリュームは別々のマウントポイントとして扱われ、--one-file-systemオプションが設定されている場合はスキップされます。これが、(1)sda2パーティションが複数のマウントポイントで表示され、(2)/をバックアップするときに/optおよび/usr/local/をスキップして別々にバックアップする必要がある理由です。