minor improvement
[distro-setup] / mount-latest-subvol
index 449297f938e83fdb73424aeefbe45af3f8bf7a88..0e456a2407728610c3b77ad40af8572b4b85781e 100644 (file)
@@ -171,7 +171,7 @@ done
 if (( $# )); then
   all_vols=( "$@" )
 else
-  all_vols=(q a o i ar qr)
+  all_vols=(q a o i ar qd qr)
 fi
 
 ##### end command line parsing ########
@@ -242,6 +242,7 @@ fa=(/mnt/root/btrbk/q.*); f=${fa[0]}
 if [[ -e $f ]]; then
   fstab <<EOF
 $crypt_dev  /q  btrfs  noatime,subvol=q,gid=1000$mopts  0 0
+$crypt_dev  /qd  btrfs  noatime,subvol=qd,gid=1000$mopts  0 0
 /q/p  /p  none  bind$mopts  0 0
 EOF
 fi
@@ -381,7 +382,10 @@ for vol in ${all_vols[@]}; do
   ### end getting root_dir
 
   cd $root_dir
-  if [[ -e $vol ]]; then
+  if [[ -e $vol  ]]; then
+    if [[ $vol == qd ]]; then
+      m btrfs sub del qd
+    fi
     leaf=$vol.leaf.$(date +%Y-%m-%dT%H:%M:%S%z)
     m mv $vol $leaf
     m btrfs property set -ts $leaf ro true
@@ -415,12 +419,12 @@ for vol in ${all_vols[@]}; do
     leaf_vols=($vol.leaf.*)
     count=${#leaf_vols[@]}
     leaf_limit_time=$(( EPOCHSECONDS - 60*60*24*60 )) # 60 days
-    leaf_new_limit_time=$(( EPOCHSECONDS - 60*60*24 )) # 1 day
-    # this goes backwards from oldest. leaf_new_limit_time is just in case
-    # the order gets screwed up or something.
+    leaf_new_limit_time=$(( EPOCHSECONDS - 60*60*24 * 5 )) # 5 days this
+    # goes backwards from oldest. leaf_new_limit_time is a safety
+    # measure to ensure we don't delete very recent leafs.
     for leaf in ${leaf_vols[@]}; do
       leaf_time=$(date -d ${leaf#"$vol".leaf.} +%s)
-      if (( leaf_limit_time > leaf_time || ( leaf_new_limit_time > leaf_time && count > 15 ) )); then
+      if (( leaf_limit_time > leaf_time || ( leaf_new_limit_time > leaf_time && count > 30 ) )); then
         x btrfs sub del $leaf
       fi
       count=$((count-1))
@@ -472,6 +476,9 @@ for dir in /mnt/r7/amy/{root/root,boot/boot}_ubuntubionic /mnt/{root2/root,boot2
   rm -f /nocow/btrfs-stale/$vol
 done
 
+if (( $ret )); then
+  echo "$0: exit status $ret. see error above"
+fi
 exit $ret