# 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
# 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[@]})
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))
rm -f /nocow/btrfs-stale/$vol
done
+if (( $ret )); then
+ echo "$0: exit status $ret. see error above"
+fi
exit $ret