fixes
[distro-setup] / btrfsmaint
deleted file mode 100755 (executable)
index 6c7dbb1f6788119cafa9cac1dc2cae559cd2c07b..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,154 +0,0 @@
-#!/bin/bash
-
-
-[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@"
-
-source /a/bin/errhandle/err
-
-# inspired from
-# https://github.com/kdave/btrfsmaintenance
-
-
-# Man page says we could also use a range, i suppose it would be
-# logical to use a pattern like 5..10 10..20,
-# but I don't know if this would help us at all.
-dusage="5 10"
-musage="5"
-
-e() { echo "cron: $*"; "$@"; }
-
-check-idle() {
-  type -p xprintidle &>/dev/null || return 0
-  export DISPLAY=:0
-  # a hours, a movie could run that long.
-  idle_limit=$((1000 * 60 * 60 * 2))
-  idle_time=$idle_limit
-  while read -r user; do
-    new_idle_time=$(sudo -u $user xprintidle 2>/dev/null) ||:
-    if [[ $new_idle_time && $new_idle_time -lt $idle_time ]]; then
-      idle_time=$new_idle_time
-    fi
-  done < <(users | tr " " "\n" | sort -u)
-  if (( idle_time < idle_limit )); then
-    idle=false
-  else
-    idle=true
-  fi
-}
-
-
-usage() {
-  cat <<EOF
-Usage: ${0##*/} args
-Do btrfs maintence or stop if xprintidle shows a user
-
-force  Run regardless of user idle status
-check  Only check if an existing maintence should be cancelled due to
-         nonidle user. Also, runs in a loop every 20 seconds for 10
-         minutes.
-
-Note: Uses util-linux getopt option parsing: spaces between args and
-options, short options can be combined, options before args.
-EOF
-  exit $1
-}
-
-
-force=false
-check=false
-if [[ $1 ]]; then
-  case $1 in
-    check)
-      check=true
-      ;;
-    force)
-      force=true
-      ;;
-    *)
-      echo "$0: error: unexpected arg" >&2
-      usage 1
-      ;;
-  esac
-fi
-
-
-main() {
-  idle=true
-  if ! $force; then
-    check-idle
-  fi
-
-  tmp=$(mktemp)
-
-  fnd="findmnt --types btrfs --noheading"
-  for x in $($fnd --output "SOURCE" --nofsroot | sort -u); do
-    mnt=$($fnd --output "TARGET" --first-only --source $x)
-    [[ $mnt ]] || continue
-
-    if ! btrfs dev stats -c $mnt >$tmp; then
-      if diff -q $mnt/btrfs-dev-stats $tmp; then
-        diff -u $mnt/btrfs-dev-stats $tmp | mail -s "$HOSTNAME: error: btrfs dev stats -c $mnt" root@localhost
-        cat $tmp >$mnt/btrfs-dev-stats
-      fi
-    fi
-
-    if ! $idle; then
-      btrfs scrub cancel $mnt &>/dev/null ||:
-      continue
-    fi
-    if $check; then
-      continue
-    fi
-
-    # for comparing before and after balance.
-    # the log is already fairly verbose, so commented.
-    # e btrfs filesystem df $mnt
-    # e df -H $mnt
-    if btrfs filesystem df $mnt | grep -q "Data+Metadata"; then
-      for usage in $dusage; do
-        e ionice -c 3 btrfs balance start -dusage=$usage -musage=$usage $mnt
-      done
-    else
-      e ionice -c 3 btrfs balance start -dusage=0 $mnt
-      for usage in $dusage; do
-        e ionice -c 3 btrfs balance start -dusage=$usage $mnt
-      done
-      e ionice -c 3 btrfs balance start -musage=0 $mnt
-      for usage in $musage; do
-        e ionice -c 3 btrfs balance start -musage=$usage $mnt
-      done
-    fi
-    # e btrfs filesystem df $mnt
-    # e df -H $mnt
-    date=$(
-      btrfs scrub status $mnt | \
-        sed -rn 's/^\s*scrub started at (.*) and finished.*/\1/p'
-        )
-    if [[ $date ]]; then
-      date=$(date --date="$date" +%s)
-      # if date is sooner than 90 days ago
-      # the wiki recommends 30 days or so, but
-      # it makes the comp lag like shit for a day,
-      # so I'm going with 90 days.
-      if (( date > $(date +%s) - 60*60*24*30 )); then
-        echo "cron: skiping scrub of $mnt"
-        continue
-      fi
-    fi
-    # -c 2 -n 4 is from btrfsmaintenance, does ionice
-    e btrfs scrub start -Bd -c 2 -n 4 $mnt
-  done
-}
-
-loop-main() {
-  while true; do
-    main
-    sleep 60
-  done
-}
-
-if $check; then
-  loop-main
-else
-  main
-fi
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..4de4b765ea951022864c989f4b60f9885ce981a4
--- /dev/null
@@ -0,0 +1 @@
+/a/f/ans/roles/btrfs/files/btrfsmaint
\ No newline at end of file