1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-29 10:18:30 +00:00
freebsd-ports/sysutils/boxbackup/files/999.boxbackup.in
Alan Somers e441e9ca24 sysutils/boxbackup*: use anticongestion sleep in the periodic job
Use an anticongestion sleep in the periodic job to prevent the thundering
herd problem when many systems' cron jobs fire off at once.

PR:		218448
PR:		218449
Approved by:	portmaster@bsdforge.com (maintainer)
2018-05-21 16:02:27 +00:00

85 lines
2.1 KiB
Bash

#!/bin/sh
#
# $FreeBSD$
#
# Box Backup monthly store compare
#
# Add the following to /etc/periodic.conf to enable the monthly compare:
# monthly_boxbackup_compare_enable="YES"
#
# By default the script will run "compare -aq". If you want to change this to
# run a full compare, add the following to periodic.conf:
# monthly_boxbackup_compare_args="-a"
#
# NOTE: This script will cause the monthly periodic(8) run to take much longer
# than usual, depending on the size of your backup store.
#
# If you wish to run this independently of the monthly job, you can create a
# new periodic entry as follows:
#
# # mkdir /usr/local/etc/periodic/boxbackup
# # mv /usr/local/etc/periodic/monthly/999.boxbackup \
# /usr/local/etc/periodic/boxbackup/100.compare
#
# Then add the following to /etc/crontab:
# 30 5 1 * * root periodic boxbackup
#
# (adjust the timings as necessary)
#
# You may also wish to add boxbackup_output="root" to periodic.conf so that
# mail comes from periodic rather than cron.
monthly_boxbackup_compare_enable="NO"
monthly_boxbackup_compare_args="-aq"
if [ -r /etc/defaults/periodic.conf ]
then
. /etc/defaults/periodic.conf
source_periodic_confs
fi
SLEEP=/bin/sleep
JOT=/usr/bin/jot
random() {
${JOT} -r 1 0 900
}
rc=0
case "$monthly_boxbackup_compare_enable" in
[Yy][Ee][Ss])
echo
echo "Running Box Backup store compare:"
# When non-interactive, sleep to reduce congestion on rkhunter
# site
if [ "$1" != -nodelay ]; then
# In FreeBSD 12.0 the anticongestion function should
# be used instead of a hard-coded sleep
if [ -n "$anticongestion_sleeptime" ]; then
anticongestion
else
${SLEEP} $(random)
fi
fi
%%PREFIX%%/sbin/bbackupquery -q "compare -c $monthly_boxbackup_compare_args" quit
# Return codes:
# 1 Comparison was exact
# 2 Differences were found
# 3 An error occurred
if [ $? -eq 2 ]; then
echo
echo "Differences were found. Please check the output."
rc=3
elif [ $? -eq 3 ]; then
echo
echo "An error occurred. Please check the output."
rc=3
fi
;;
esac
exit $rc