X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=mount-latest-subvol;h=099c38f78f88eb85ad19de2a7864513d394b3453;hb=5caf70ebd54aed4f4c661d519dc5cf8e757e2708;hp=688e4f1b6d512209c5d892e9add1fe5f1d901e8c;hpb=72c18f3a6a7f1ed0ca16af654a1f804ab96e1ff9;p=distro-setup diff --git a/mount-latest-subvol b/mount-latest-subvol index 688e4f1..099c38f 100644 --- a/mount-latest-subvol +++ b/mount-latest-subvol @@ -13,9 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -script=$(readlink -f -- "$BASH_SOURCE") +this_file="$(readlink -f -- "${BASH_SOURCE[0]}")" +readonly this_file cd / -[[ $EUID == 0 ]] || exec sudo -E "$script" "$@" +[[ $EUID == 0 ]] || exec sudo -E "$this_file" "$@" source /usr/local/lib/err @@ -305,7 +306,7 @@ for vol in ${all_vols[@]}; do # eg. when r=/q/p, for lines like # /q/p /p none bind 0 0 # output /p - new_roots+=($(sed -rn "s#^$r/\S+\s+(\S+)\s+none\s+(\S+,|)bind[[:space:],].*#\1#p" /etc/fstab)) + new_roots+=("$(sed -rn "s#^$r/\S+\s+(\S+)\s+none\s+(\S+,|)bind[[:space:],].*#\1#p" /etc/fstab)") done (( ${#new_roots} )) || break binds+=(${new_roots[@]}) @@ -414,12 +415,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)) @@ -471,6 +472,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