From 3236ac89d1faba6ddf161c9f1dab13d48eac5b2f Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Mon, 31 Jul 2017 21:23:32 -0700 Subject: Add backup utility and monitoring --- home/.config/i3/i3blocks.conf | 5 +++++ home/.config/i3/status/backup | 29 +++++++++++++++++++++++++++++ home/bin/backup | 14 +++++--------- 3 files changed, 39 insertions(+), 9 deletions(-) create mode 100755 home/.config/i3/status/backup diff --git a/home/.config/i3/i3blocks.conf b/home/.config/i3/i3blocks.conf index a18c9ef..f468269 100644 --- a/home/.config/i3/i3blocks.conf +++ b/home/.config/i3/i3blocks.conf @@ -58,6 +58,11 @@ signal=10 instance=leds/tpacpi::kbd_backlight command=~/.config/i3/status/brightness +[backup] +label= +command=~/.config/i3/status/backup +interval=10 + [disk] label= interval=30 diff --git a/home/.config/i3/status/backup b/home/.config/i3/status/backup new file mode 100755 index 0000000..48a8a3e --- /dev/null +++ b/home/.config/i3/status/backup @@ -0,0 +1,29 @@ +#!/bin/bash + +uuid=05b7770e-1f01-4b17-83de-ede0a04495a1 +instance="$(systemd-escape $uuid)" + +if systemctl --quiet is-active "cryo@$instance.service"; then + echo "" + echo "backup running" + echo "#00ff00" +elif systemctl --quiet is-failed "cryo@$instance.service"; then + echo "" + echo "backup failed" + echo "#ff0000" +elif [[ -f /var/lib/cryo/$uuid/alpha ]]; then + last_run=$(date --reference "/var/lib/cryo/$uuid/alpha" +%s) + now=$(date +%s) + days=$(( (now - last_run) / 60 / 60 / 24 )) + if [[ $days -gt 30 ]]; then + echo ">30d" + echo "backup last run over 30 days ago" + echo "#ff0000" + else + echo "${days}d" + echo "backup last run $days days ago" + fi +else + echo "no backup" + echo "no recent backup found" +fi diff --git a/home/bin/backup b/home/bin/backup index 648b59d..eb70d1d 100755 --- a/home/bin/backup +++ b/home/bin/backup @@ -1,21 +1,17 @@ #!/bin/bash set -e -device=/dev/sdb -mapped=backup +uuid=05b7770e-1f01-4b17-83de-ede0a04495a1 +instance="$(systemd-escape $uuid)" case "$1" in mount) - echo $(pass other/backup) | sudo cryptsetup open --type luks "$device" "$mapped" - sudo mount /dev/mapper/"$mapped" /mnt + sudo cryo "$uuid" mount ;; umount) - sudo umount /mnt - sudo cryptsetup close "$mapped" + sudo cryo "$uuid" umount ;; *) - echo "Unknown argument $1" - echo "Usage: $0 [mount | umount]" - exit 1 + sudo systemctl start "cryo@$instance.service" ;; esac -- cgit v1.2.3