diff --git a/pi-gen-sources/00-packages b/pi-gen-sources/00-packages index 700b896..8beff5f 100644 --- a/pi-gen-sources/00-packages +++ b/pi-gen-sources/00-packages @@ -1 +1,2 @@ -dos2unix \ No newline at end of file +dos2unix +hping3 \ No newline at end of file diff --git a/run/archiveloop b/run/archiveloop index 81b313a..24dab5b 100644 --- a/run/archiveloop +++ b/run/archiveloop @@ -26,7 +26,9 @@ function fix_errors_in_mounted_files () { function archive_is_reachable () { local reachable=true - ping -q -w 1 -c 1 "$ARCHIVE_HOST_NAME" > /dev/null 2>&1 || reachable=false + + /root/bin/archive-is-reachable.sh || reachable=false + if [ "$reachable" = false ] then false diff --git a/run/cifs_archive/archive-is-reachable.sh b/run/cifs_archive/archive-is-reachable.sh new file mode 100644 index 0000000..dd3b102 --- /dev/null +++ b/run/cifs_archive/archive-is-reachable.sh @@ -0,0 +1,5 @@ +#!/bin/bash -eu + +ARCHIVE_HOST_NAME="$1" + +hping3 -c 1 -S -p 445 "$ARCHIVE_HOST_NAME" > /dev/null 2>&1 diff --git a/run/cifs_archive/verify-archive-configuration.sh b/run/cifs_archive/verify-archive-configuration.sh index bf8b9f2..52ea1f7 100644 --- a/run/cifs_archive/verify-archive-configuration.sh +++ b/run/cifs_archive/verify-archive-configuration.sh @@ -3,7 +3,7 @@ function check_archive_server_reachable () { echo "Verifying that the archive server $archiveserver is reachable..." local serverunreachable=false - ping -c 1 -w 1 "$archiveserver" 1>/dev/null 2>&1 || serverunreachable=true + hping3 -c 1 -S -p 445 "$archiveserver" 1>/dev/null 2>&1 || serverunreachable=true if [ "$serverunreachable" = true ] then @@ -43,6 +43,13 @@ function check_archive_mountable () { umount "$test_mount_location" } +function install_required_packages () { + apt-get -y --force-yes install hping3 +} + +install_required_packages + + ARCHIVE_SERVER_IP_ADDRESS="$( $INSTALL_DIR/lookup-ip-address.sh "$archiveserver" )" check_archive_server_reachable diff --git a/run/lookup-ip-address.sh b/run/lookup-ip-address.sh index 41b8f5a..a09e374 100644 --- a/run/lookup-ip-address.sh +++ b/run/lookup-ip-address.sh @@ -1,3 +1,3 @@ #!/bin/bash -eu -echo "$(ping -c 1 -w 1 $1 2>/dev/null | head -n 1 | grep -o -e "(\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\})" | tr -d '()')" \ No newline at end of file +echo "$(hping3 -c 1 -S -p 445 -n $1 2>/dev/null | head -n 1 | grep -o -e "\W\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\})" | tr -d ' )')" \ No newline at end of file diff --git a/run/rclone_archive/archive-is-reachable.sh b/run/rclone_archive/archive-is-reachable.sh new file mode 100644 index 0000000..4fc034a --- /dev/null +++ b/run/rclone_archive/archive-is-reachable.sh @@ -0,0 +1,3 @@ +#!/bin/bash -eu + +ping -q -w 1 -c 1 8.8.8.8 > /dev/null 2>&1 diff --git a/run/rsync_archive/archive-is-reachable.sh b/run/rsync_archive/archive-is-reachable.sh new file mode 100644 index 0000000..0ba86dd --- /dev/null +++ b/run/rsync_archive/archive-is-reachable.sh @@ -0,0 +1,5 @@ +#!/bin/bash -eu + +ARCHIVE_HOST_NAME="$1" + +ping -q -w 1 -c 1 "$ARCHIVE_HOST_NAME" > /dev/null 2>&1 diff --git a/setup/pi/configure.sh b/setup/pi/configure.sh index cc6874c..fc22fde 100644 --- a/setup/pi/configure.sh +++ b/setup/pi/configure.sh @@ -122,6 +122,7 @@ function install_archive_scripts () { get_script $install_path connect-archive.sh $archive_module get_script $install_path disconnect-archive.sh $archive_module get_script $install_path write-archive-configs-to.sh $archive_module + get_script $install_path archive-is-reachable.sh $archive_module } diff --git a/setup/pi/make-root-fs-readonly.sh b/setup/pi/make-root-fs-readonly.sh index 4ac638b..7cfb27e 100644 --- a/setup/pi/make-root-fs-readonly.sh +++ b/setup/pi/make-root-fs-readonly.sh @@ -15,6 +15,7 @@ apt-get -y --force-yes autoremove --purge # Replace log management with busybox (use logread if needed) echo "Installing ntp and busybox-syslogd..." apt-get -y --force-yes install ntp busybox-syslogd; dpkg --purge rsyslog + echo "Configuring system..." # Add fastboot, noswap and/or ro to end of /boot/cmdline.txt