-v|--verbose Be more verbose
-Note, at source location, intentionally not executable, run and read
-install-my-scripts.
+Note: In git this is not not executable because it's meant to be installed
+using ./install-my-scripts
Note: Uses util-linux getopt option parsing: spaces between args and
options, short options can be combined, options before args.
exit $1
}
+all_vols=(q a o i ar qr)
+
tu() {
while read -r line; do
}
# duplicated in check-subvol
+# Reassign $1 var from /dev/dm- to corresponding /dev/mapper/
mapper-dev() {
local mapdev
local -n devref=$1
mnt /mnt/boot2
fi
+do_o=true
root_dev=$(awk '$2 == "/" {print $1}' /etc/mtab)
mapper-dev root_dev
+o_dev=$(awk '$2 == "/mnt/o" {print $1}' /etc/mtab)
+mapper-dev o_dev
+
+if [[ $o_dev == "$root_dev" ]]; then
+ do_o=false
+fi
# root2_dev=$(awk '$2 == "/mnt/root2" {print $1}' /etc/mtab)
# mapper-dev root2_dev
crypt_dev=$root_dev
else # if we are in a recovery boot, find the next best crypt device
mopts=,noauto
+ do_o=false
for dev in $(dmsetup ls --target crypt | awk '{print $1}'); do
dev=/dev/mapper/$dev
if awk '{print $1}' /etc/mtab | grep -Fx $dev &>/dev/null; then
EOF
fi
-f=(/mnt/root/btrbk/o.*); f=${f[0]}
+f=(/mnt/root/btrbk/qr.*); f=${f[0]}
+if [[ -e $f ]]; then
+ fstab <<EOF
+$crypt_dev /qr btrfs noatime,subvol=qr$mopts 0 0
+EOF
+fi
+
+f=(/mnt/root/btrbk/ar.*); f=${f[0]}
+if [[ -e $f ]]; then
+ fstab <<EOF
+$crypt_dev /ar btrfs noatime,subvol=ar,uid=1000,gid=1000$mopts 0 0
+EOF
+fi
+
+
+f=(/mnt/o/btrbk/o.*); f=${f[0]}
if [[ -e $f ]]; then
fstab <<EOF
-$crypt_dev /o btrfs noatime,subvol=o$mopts 0 0
+$o_dev /o btrfs noatime,subvol=o$mopts 0 0
/o/m /m none bind$mopts 0 0
EOF
+else
+ do_o=false
fi
if [[ $HOSTNAME == frodo ]]; then
done
### end get pids that this program depends on so we dont kill them
-for vol in q a o i; do
+for vol in ${all_vols[@]}; do
d=/$vol
if ! awk '{print $2}' /etc/fstab | grep -xF $d &>/dev/null; then
continue
continue
fi
- if [[ $vol == q ]]; then
- # allow to fail, user might not be logged in
- x sudo -u $(id -nu 1000) XDG_RUNTIME_DIR=/run/user/1000 systemctl --user stop arbtt ||:
- fi
+ ## not using arbtt at the moment
+ # if [[ $vol == q ]]; then
+ # ## allow to fail, user might not be logged in
+ # x sudo -u $(id -nu 1000) XDG_RUNTIME_DIR=/run/user/1000 systemctl --user stop arbtt ||:
+ # fi
umount_ret=true
unmounted=()
for dir in $(echo $d ${binds[*]}\ |tac -s\ ); do
#pi python-jmespath # dependency of btrfs-snapshots-diff
# todo: need python3 port of btrfs-snapshots-diff, py2 no exist on nabia
parentid=$(btrfs sub show $leaf | awk '$1 == "Parent" && $2 == "UUID:" {print $3}')
- bsubs=(/mnt/root/btrbk/$vol.*)
+ bsubs=(btrbk/$vol.*)
bsub=
# go in reverse order as its more likely to be at the end
for ((i=${#bsubs[@]}-1; i>=0; i--)); do
## begin expire leaf vols ##
leaf_vols=($vol.leaf.*)
count=${#leaf_vols[@]}
- leaf_limit_time=$(( $(date +%s) - 60*60*24*60 )) # 60 days
- leaf_new_limit_time=$(( $(date +%s) - 60*60*24 )) # 1 day
+ 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.
for leaf in ${leaf_vols[@]}; do
for dir in $d ${binds[@]}; do
m mnt $dir
done
- if [[ $vol == q ]]; then
- # maybe this will fail if X is not running
- x sudo -u $(id -nu 1000) XDG_RUNTIME_DIR=/run/user/1000 systemctl --user start arbtt ||:
- fi
+
+ ## arbtt disabled for now
+ # if [[ $vol == q ]]; then
+ # # maybe this will fail if X is not running
+ # x sudo -u $(id -nu 1000) XDG_RUNTIME_DIR=/run/user/1000 systemctl --user start arbtt ||:
+ # fi
+
stale_dir=/nocow/btrfs-stale
rm -f $stale_dir/$d
done