set -e
set -u
+AUTHKEYSFILE=/etc/ssh/userkeys/root
+BASE=/srv/backups/da-backup
+
err=0
log() {
- if [ "$1" == "warn" ] && [ "$err" -lt 1 ]; then
+ if [ "$1" = "warn" ] && [ "$err" -lt 1 ]; then
err=1
- elif [ "$1" == "critical" ] && [ "$err" -lt 2 ]; then
+ elif [ "$1" = "critical" ] && [ "$err" -lt 2 ]; then
err=2
- elif [ "$1" == "unknown" ] && [ "$err" == 0 ]; then
+ elif [ "$1" = "unknown" ] && [ "$err" = 0 ]; then
err=3
fi
}
rsync_targets=`tempfile`
backup_manager_sources=`tempfile`
trap "rm -f '$rsync_targets' '$backup_manager_sources'" 0 1 2 5 15
-cat /root/.ssh/authorized_keys |
+cat "$AUTHKEYSFILE" |
grep '^command=' |
- sed -e 's/",no-por.*//' -e 's/.*--ignore-errors . //' -e 's#/org/backup.debian.org/staging/##' |
+ sed -e 's/",no-por.*//' -e 's/.*--ignore-errors . //' -e "s#${BASE}/staging/##" |
grep -v 'command="/usr/lib/da-backup/da-backup-ssh-wrap ' |
sort > "$rsync_targets"
-wildcard_hosts=`cat /root/.ssh/authorized_keys | grep 'command="/usr/lib/da-backup/da-backup-ssh-wrap ' | sed -e 's/.*da-backup-ssh-wrap \([a-z0-9.]*\)".*/\1/' | tr '\n' '|' | sed 's/|$//'`
-grep -h source /etc/da-backup-manager/* |
+wildcard_hosts=`cat "$AUTHKEYSFILE" | grep 'command="/usr/lib/da-backup/da-backup-ssh-wrap ' | sed -e 's/.*da-backup-ssh-wrap \([a-z0-9.]*\)".*/\1/' | tr '\n' '|' | sed 's/|$//'`
+grep -h '^source' /etc/da-backup-manager/* |
sed -e 's/source=//' |
egrep -v "^($wildcard_hosts)/" |
sort > "$backup_manager_sources"
# check that everything listed as either source or destination by da-backup-manager does exist - if stuff is new it might still be missing tho
for i in `awk -F = '$1=="source" {print $2}' /etc/da-backup-manager/* `; do
- if ! [ -d "/org/backup.debian.org/staging/$i" ]; then
+ if ! [ -d "${BASE}/staging/$i" ]; then
log warn
echo "Warning: source $i does not exist"
fi
done
for i in ` awk -F = '$1=="destination"{print $2}' /etc/da-backup-manager/* `; do
- if ! [ -d "/org/backup.debian.org/backups/$i" ]; then
+ if ! [ -d "${BASE}/backups/$i" ]; then
log warn
echo "Warning: destination $i does not exist (if it is new, it takes a day)"
fi
done
# check that everything that does exist has an entry in da-backup-manager
-cd /org/backup.debian.org/staging
+cd "${BASE}/staging"
for i in */*; do
if ! [ -d "$i" ]; then
log warn
echo "staging/$i is not listed anywhere in /etc/da-backup-manager"
fi
done
-cd /org/backup.debian.org/backups
+cd "${BASE}/backups"
for i in */*; do
if ! [ -d "$i" ]; then
log warn