3 # Licensed to the Apache Software Foundation (ASF) under one or more
4 # contributor license agreements. See the NOTICE file distributed with
5 # this work for additional information regarding copyright ownership.
6 # The ASF licenses this file to You under the Apache License, Version 2.0
7 # (the "License"); you may not use this file except in compliance with
8 # the License. You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
18 if [[ $# -lt 1 || $1 == "-h" || $1 == "--help" ]]; then
20 $0: checks if the given set of hosts is reachable on port 22.
23 $0 [flags] [host1,host2,...]
26 -h|--help This help message
28 environment variables:
29 CHECK_INTERVAL The minimum interval in seconds to check each host at.
34 CHECK_INTERVAL=${CHECK_INTERVAL:-5}
41 end=$(( now + CHECK_INTERVAL))
42 timeout 1 bash -c "cat < /dev/null > /dev/tcp/$host/22" &> /dev/null
43 [[ $? -eq 0 ]] || echo "Failed to connect to port 22 on $host"
46 [[ $rem -gt 0 ]] && sleep -- $rem
50 trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
51 for host in $hosts; do