spacepaste

  1.  
  2. #!/bin/bash
  3. systemctl stop btrfs-scrub@-.timer
  4. systemctl stop snapper-cleanup.timer
  5. systemctl stop snapper-timeline.timer
  6. mount -o noatime,compress=lzo,autodefrag /dev/mapper/cryptroot /home/niko/nosnap/rootfs/
  7. cd /home/niko/nosnap
  8. rm ro_snapshots 2> /dev/null
  9. for snapshot in $(btrfs subvolume list -p /home/niko/nosnap/rootfs | awk '{ print $11 }'); do
  10. ro=$(btrfs property get -ts /home/niko/nosnap/rootfs/${snapshot} | awk -F "=" '{print $2}');
  11. if [ "${ro}" == "true" ]; then
  12. echo ${snapshot}": "${ro}; echo ${snapshot} >> ro_snapshots;
  13. btrfs property set -ts /home/niko/nosnap/rootfs/${snapshot} ro false;
  14. echo "Set to: "$(btrfs property get -ts /home/niko/nosnap/rootfs/${snapshot} | awk -F "=" '{print $2}');
  15. fi;
  16. done
  17. rm rootfs.hash 2> /dev/null
  18. btrfs filesystem usage /home/niko/nosnap/rootfs/ > before_balance
  19. btrfs balance start /home/niko/nosnap/rootfs/ --full-balance
  20. btrfs filesystem usage /home/niko/nosnap/rootfs/ > after_balance
  21. time duperemove -drh --dedupe-options=noblock --hashfile=/home/niko/nosnap/rootfs.hash /home/niko/nosnap/rootfs/ 2> duperemove.err
  22. #time duperemove -drh --hashfile=/home/niko/nosnap/rootfs.hash /home/niko/nosnap/rootfs/ 2> duperemove.err
  23. rm rootfs.hash 2> /dev/null
  24. btrfs filesystem usage /home/niko/nosnap/rootfs/ > after_duperemove
  25. btrfs balance start /home/niko/nosnap/rootfs/ --full-balance
  26. btrfs filesystem usage /home/niko/nosnap/rootfs/ > after_duperemove_and_balance
  27. for snapshot in $(cat ro_snapshots); do
  28. btrfs property set -ts /home/niko/nosnap/rootfs/${snapshot} ro true;
  29. done
  30. rm ro_snapshots 2> /dev/null
  31. umount rootfs/
  32. systemctl start btrfs-scrub@-.timer
  33. systemctl start snapper-cleanup.timer
  34. systemctl start snapper-timeline.timer
  35.