summaryrefslogtreecommitdiffstats
path: root/bin/reproducible_node_health_check.sh
diff options
context:
space:
mode:
authorHolger Levsen <holger@layer-acht.org>2017-06-13 00:30:46 +0200
committerHolger Levsen <holger@layer-acht.org>2017-06-13 00:31:13 +0200
commit4547adc7795af312c9a3ca17c1edde9f60ad45a8 (patch)
tree70244d82627ab311026b5664ef7d31765fb3e82a /bin/reproducible_node_health_check.sh
parente656e242d98ee2611a4089045ad8d4d7c70d0548 (diff)
downloadjenkins.debian.net-4547adc7795af312c9a3ca17c1edde9f60ad45a8.tar.xz
reproducible Debian: add new node health check jobs, splitt off from maintenance jobs
Signed-off-by: Holger Levsen <holger@layer-acht.org>
Diffstat (limited to 'bin/reproducible_node_health_check.sh')
-rwxr-xr-xbin/reproducible_node_health_check.sh80
1 files changed, 80 insertions, 0 deletions
diff --git a/bin/reproducible_node_health_check.sh b/bin/reproducible_node_health_check.sh
new file mode 100755
index 00000000..3e9665e8
--- /dev/null
+++ b/bin/reproducible_node_health_check.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+# Copyright 2014-2017 Holger Levsen <holger@layer-acht.org>
+# © 2015 Mattia Rizzolo <mattia@mapreri.org>
+# released under the GPLv=2
+
+DEBUG=false
+. /srv/jenkins/bin/common-functions.sh
+common_init "$@"
+
+# common code defining db access
+. /srv/jenkins/bin/reproducible_common.sh
+
+DIRTY=false
+REP_RESULTS=/srv/reproducible-results
+
+show_fstab_and_mounts() {
+ echo "################################"
+ echo "/dev/shm and /run/shm on $HOSTNAME"
+ echo "################################"
+ ls -lartd /run/shm /dev/shm/
+ echo "################################"
+ echo "/etc/fstab on $HOSTNAME"
+ echo "################################"
+ cat /etc/fstab
+ echo "################################"
+ echo "mount output on $HOSTNAME"
+ echo "################################"
+ mount
+ echo "################################"
+ DIRTY=true
+}
+
+# for Debian, first run some checks…
+set +e
+# check for working proxy
+echo "$(date -u) - testing whether the proxy works..."
+curl http://www.debian.org > /dev/null
+if [ $? -ne 0 ] ; then
+ irc_message debian-reproducible "Proxy is down for $HOSTNAME, please tell the jenkins admins to fix this. (sudo service squid3 restart)"
+ exit 1
+fi
+# check for /dev/shm being mounted properly
+echo "$(date -u) - testing whether /dev/shm is mounted correctly..."
+mount | egrep -q "^tmpfs on /dev/shm"
+if [ $? -ne 0 ] ; then
+ echo "Warning: /dev/shm is not mounted correctly on $HOSTNAME, it should be a tmpfs, please tell the jenkins admins to fix this."
+ show_fstab_and_mounts
+fi
+test "$(stat -c %a -L /dev/shm)" = 1777
+if [ $? -ne 0 ] ; then
+ echo "Warning: /dev/shm is not mounted correctly on $HOSTNAME, it should be mounted with 1777 permissions, please tell the jenkins admins to fix this."
+ show_fstab_and_mounts
+fi
+# check for /run/shm being a link to /dev/shm
+echo "$(date -u) - testing whether /run/shm is a link..."
+if ! test -L /run/shm ; then
+ echo "Warning: /run/shm is not a link on $HOSTNAME, please tell the jenkins admins to fix this."
+ show_fstab_and_mounts
+elif [ "$(readlink /run/shm)" != "/dev/shm" ] ; then
+ echo "Warning: /run/shm is a link, but not pointing to /dev/shm on $HOSTNAME, please tell the jenkins admins to fix this."
+ show_fstab_and_mounts
+fi
+# check for correct MTU
+echo "$(date -u) - testing whether the network interfaces MTU is 1500..."
+if [ "$(ip link | sed -n '/LOOPBACK\|NOARP/!s/.* mtu \([0-9]*\) .*/\1/p' | sort -u)" != "1500" ] ; then
+ ip link
+ echo "$(date -u) - network interfaces MTU != 1500 - this is wrong. => please \`sudo ifconfig eth0 mtu 1500\`"
+ # should probably turn this into a warning if this becomes to annoying
+ irc_message debian-reproducible "$HOSTNAME has wrong MTU, please tell the jenkins admins to fix this. (sudo ifconfig eth0 mtu 1500)"
+ exit 1
+fi
+if ! $DIRTY ; then
+ echo "$(date -u ) - Everything seems to be fine."
+ echo
+fi
+
+echo "$(date -u) - the end."
+
+