summaryrefslogtreecommitdiffstats
path: root/bin/check-mirrors
blob: ed37c38dc66411b6e6ce58c53246f3e4241d0a04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/sh
#
# Copyright (c) 2013 Nagios Plugins Development Team
#
# Originally written by Holger Weiss <holger@zedat.fu-berlin.de>.
#
# This file is free software; the Nagios Plugins Development Team gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY, to the extent permitted by law; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

set -e
set -u
umask 022

export PATH='/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin'

mirrors='
    ftp://ftp.fu-berlin.de/unix/network/nagios-plugins/
    ftp://ftp.lysator.liu.se/pub/nagios-plugins/
'
prefix='/home/plugins'
myself=${0##*/}
download_dir="$prefix/web/download"
temp_dir=$(mktemp -d "/tmp/$myself.XXXXXX")

trap 'rm -rf "$temp_dir"' EXIT

cd "$temp_dir"
date -d 'yesterday' '+%F' >'expected'
for mirror in $mirrors
do
	url="${mirror%/}/timestamp"

	if curl -s -S -O "$url" >'curl.log' 2>&1
	then
		cmp -s 'expected' 'timestamp' \
		    || echo >&2 "$mirror is outdated ($(cat 'timestamp'))."
	else
		echo >&2 "Cannot fetch $url: $(cat 'curl.log')"
	fi
done
cd "$OLDPWD"
date '+%F' >"$download_dir/timestamp"