1cd30c339dae692a3eb5c5fc55f70726457f4756bmridge#!/bin/sh 2cd30c339dae692a3eb5c5fc55f70726457f4756bmridge 3c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. 4c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# Copyright (c) International Business Machines Corp., 2005 5cd30c339dae692a3eb5c5fc55f70726457f4756bmridge# 6c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# This program is free software; you can redistribute it and/or 7c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# modify it under the terms of the GNU General Public License as 8c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# published by the Free Software Foundation; either version 2 of 9c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# the License, or (at your option) any later version. 10cd30c339dae692a3eb5c5fc55f70726457f4756bmridge# 11c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# This program is distributed in the hope that it would be useful, 12c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# but WITHOUT ANY WARRANTY; without even the implied warranty of 13c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# GNU General Public License for more details. 15cd30c339dae692a3eb5c5fc55f70726457f4756bmridge# 16c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# You should have received a copy of the GNU General Public License 17c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# along with this program; if not, write the Free Software Foundation, 18c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19cd30c339dae692a3eb5c5fc55f70726457f4756bmridge# 20c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev# Author: Mitsuru Chinen <mitch@jp.ibm.com> 21cd30c339dae692a3eb5c5fc55f70726457f4756bmridge# 22c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev 23c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey KodanevTCID="ssh_stress02_rmt" 24c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey KodanevTST_TOTAL=1 25c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev 26c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev. test.sh 27cd30c339dae692a3eb5c5fc55f70726457f4756bmridge 28cd30c339dae692a3eb5c5fc55f70726457f4756bmridge# Check the arguments 29cd30c339dae692a3eb5c5fc55f70726457f4756bmridgeif [ $# -ne 5 ]; then 30c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev tst_brkm TBROK "Usage: $0 ipver rhost config connections duration" 31cd30c339dae692a3eb5c5fc55f70726457f4756bmridgefi 32c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev 33cd30c339dae692a3eb5c5fc55f70726457f4756bmridgeip_ver="$1" 34cd30c339dae692a3eb5c5fc55f70726457f4756bmridgeserver_ipaddr="$2" 35cd30c339dae692a3eb5c5fc55f70726457f4756bmridgessh_config="$3" 36c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanevconnections="$4" 37cd30c339dae692a3eb5c5fc55f70726457f4756bmridgeduration="$5" 38cd30c339dae692a3eb5c5fc55f70726457f4756bmridge 39c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanevssh -$ip_ver -F $ssh_config $server_ipaddr \ 40c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev "true < /dev/null > /dev/null 2>&1" > /dev/null 41c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev[ $? -ne 0 ] && tst_brkm TBROK "Failed to connect '$server_ipaddr'" 4237550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 43c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanevstart_epoc=$(date +%s) 44cd30c339dae692a3eb5c5fc55f70726457f4756bmridgewhile true ; do 45c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev # Exit when the specified seconds have passed. 46c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev current_epoc=$(date +%s) 47c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev elapse_epoc=$(($current_epoc - $start_epoc)) 48c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev 49c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev [ $elapse_epoc -ge $duration ] && break 50cd30c339dae692a3eb5c5fc55f70726457f4756bmridge 51c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev # Do not make ssh connection over the specified quantity 52c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev ssh_num=$(jobs | wc -l) 53c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev if [ $ssh_num -ge $connections ]; then 54c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev sleep 1 55c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev continue; 56c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev fi 57cd30c339dae692a3eb5c5fc55f70726457f4756bmridge 58c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev # specified wait time and login time 59c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev wait_sec=$(($(od -A n -d -N 1 /dev/random) * 3 / 255)) 60c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev login_sec=$(($(od -A n -d -N 1 /dev/random) * 10 / 255)) 61cd30c339dae692a3eb5c5fc55f70726457f4756bmridge 62c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev # Login to the server 63c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev (sleep $wait_sec ; ssh -$ip_ver -F $ssh_config -l root $server_ipaddr \ 64c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev "sleep $login_sec < /dev/null > /dev/null 2>&1") > \ 65c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev /dev/null 2>&1 & 66cd30c339dae692a3eb5c5fc55f70726457f4756bmridgedone 67cd30c339dae692a3eb5c5fc55f70726457f4756bmridge 68cd30c339dae692a3eb5c5fc55f70726457f4756bmridge# wait for the finish of all process 69cd30c339dae692a3eb5c5fc55f70726457f4756bmridgewait 70cd30c339dae692a3eb5c5fc55f70726457f4756bmridge 71cd30c339dae692a3eb5c5fc55f70726457f4756bmridge# Check the connectivity again 72c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanevssh -$ip_ver -F $ssh_config $server_ipaddr \ 73c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev "true < /dev/null > /dev/null 2>&1" > /dev/null 74c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanev[ $? -ne 0 ] && tst_brkm TBROK "Failed to connect '$server_ipaddr'" 75cd30c339dae692a3eb5c5fc55f70726457f4756bmridge 76c5d978a44e1b69374478e6fb4d909c11dfb43fa3Alexey Kodanevtst_exit 77