From 4547adc7795af312c9a3ca17c1edde9f60ad45a8 Mon Sep 17 00:00:00 2001 From: Holger Levsen Date: Tue, 13 Jun 2017 00:30:46 +0200 Subject: reproducible Debian: add new node health check jobs, splitt off from maintenance jobs Signed-off-by: Holger Levsen --- bin/reproducible_node_health_check.sh | 80 +++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100755 bin/reproducible_node_health_check.sh (limited to 'bin/reproducible_node_health_check.sh') 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 +# © 2015 Mattia Rizzolo +# 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." + + -- cgit v1.2.3-70-g09d2