LINUX.ORG.RU

Backup Btrfs на флешку

 


0

1

Написал такой скрипт он вроде бы и все копирует…

#!/usr/bin/env bash
die() { echo "$*" 1>&2 ; exit 1; }
get_partition() {
  df -P "$1" | awk 'END{print $1}'
}
dst=$1
src=${2:-.}
if [[ ! $dst ]]
then
  die "dst required"
fi
src_partition=$(get_partition "$src")
dst_partition=$(get_partition "$dst")
echo "Copy From: $src_partition"
echo "Copy To: $dst_partition"
IFS=$'\n' targets=( $(findmnt -t btrfs -o TARGET "$src_partition" | tail -n +2) )
echo ${targets[@]}
for target in ${targets[@]}
do
  snapshots_dir=$target/.snapshots
  echo $snapshots_dir
  # Ищем последний снимок
  max=$(ls -A "$snapshots_dir" | sort -n | tail -1)
  if [[ ! $max ]]
  then
    echo "Empty .snapshots"
    continue
  fi
  latest_snapshot=$snapshots_dir/$max/snapshot
  echo $latest_snapshot
  if [[ ! -e $latest_snapshot ]]
  then
    echo "Snapshot does not exists"
    continue
  fi
  uuid=$(cat /proc/sys/kernel/random/uuid)
  # echo $uuid
  mount_dir=$dst/$uuid
  mkdir -p -m 755 $mount_dir
  subvol=@$uuid
  btrfs sub create "$subvol"
  # Используем максимальное сжатие
  mount -o noatime,compress=zlib:9,space_cache,subvol="$subvol" "$dst_partition" "$mount_dir"
  btrfs send "$latest_snapshot" | btrfs receive "$mount_dir"
  # umount $mount_dir
done
echo "Finished"

Но я не могу от этих ошибок избавиться:

$ sudo make-backup.sh /mnt/storage          
[sudo] password for sergey: 
Copy From: /dev/nvme0n1p5
Copy To: /dev/sda
/ /var /home
//.snapshots
//.snapshots/4/snapshot
Create subvolume './@990bccd2-5b90-4c60-a440-39693ec6df6e'
mount: /mnt/storage/990bccd2-5b90-4c60-a440-39693ec6df6e: mount(2) system call failed: No such file or directory.
At subvol //.snapshots/4/snapshot
At subvol snapshot

Я даже не уверен, что он монтируется правильно. Идея такая: есть snapper, он каждые 24 часа делает снимки системы и ради спортивного интереса хочу копировать снимок (воссаздать из него всю структуру) и разместить копию на флешке с максимальным сжатием.

★★

Последнее исправление: tz4678 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.