1#!/bin/sh 2# 3# Copyright (c) International Business Machines Corp., 2000 4# 5# This program is free software; you can redistribute it and/or modify 6# it under the terms of the GNU General Public License as published by 7# the Free Software Foundation; either version 2 of the License, or 8# (at your option) any later version. 9# 10# This program is distributed in the hope that it will be useful, 11# but WITHOUT ANY WARRANTY; without even the implied warranty of 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 13# the GNU General Public License for more details. 14# 15# You should have received a copy of the GNU General Public License 16# along with this program; if not, write to the Free Software 17# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18# 19# 20# 21# FILE : rsh 22# 23# PURPOSE: To test the basic functionality of the `rsh` command. 24# 25# SETUP: The home directory of root on the machine exported as "RHOST" 26# MUST have a ".rhosts" file with the hostname of the machine 27# where the test is executed. 28# 29# HISTORY: 30# 03/01 Robbie Williamson (robbiew@us.ibm.com) 31# -Ported 32# 33# 34# 35#---------------------------------------------------------------------- 36 37do_setup() 38{ 39 40 FAIL_IMMEDIATELY=${FAIL_IMMEDIATELY:-1} 41 SLEEPTIME=${SLEEPTIME:-0} 42 NUMLOOPS=${NUMLOOPS:-1} 43 44 export TST_TOTAL=$NUMLOOPS 45 46 tst_setup 47 48 exists awk hostname rsh 49 50 RHOST=${RHOST:-`hostname`} 51 52} 53 54#----------------------------------------------------------------------- 55# 56# FUNCTION: do_test 57# 58#----------------------------------------------------------------------- 59 60do_test() 61{ 62 63 while [ $TST_COUNT -le $NUMLOOPS ]; do 64 65 PASSED=0 66 67 if OUT=$(rsh -n -l root $RHOST 'ls -l /etc/hosts'); then 68 69 # 70 # Successful output would be something of the form: 71 # 72 # gcooper@orangebox ~ $ ls -l /etc/hosts 73 # -rw-r--r-- 1 root root 463 Jul 5 09:26 /etc/hosts 74 # 75 echo "$OUT" | 76 awk 'BEGIN { RET=1 } NF == 9 && $NF == "/etc/hosts" { RET=0 } END { exit RET }' \ 77 > /dev/null 2>&1 78 79 if [ $? -eq 0 ] ; then 80 tst_resm TPASS "rsh to $RHOST test succeeded" 81 PASSED=1 82 fi 83 84 fi 85 86 if [ $PASSED -ne 1 ] ; then 87 tst_resm TFAIL "rsh to $RHOST failed" 88 # If the first rsh failed, the likelihood that the rest will 89 # succeed is low. 90 if [ "$FAIL_IMMEDIATELY" = "1" ] && [ $TST_COUNT -eq 1 ]; then 91 exit 2 92 fi 93 fi 94 95 sleep $SLEEPTIME 96 incr_tst_count 97 98 done 99 100} 101 102#---------------------------------------------------------------------- 103# FUNCTION: MAIN 104# PURPOSE: To invoke the functions to perform the tasks described in 105# the prologue. 106# INPUT: None. 107# OUTPUT: A testcase run log with the results of the execution of this 108# test. 109#---------------------------------------------------------------------- 110. net_cmdlib.sh 111 112read_opts $* 113do_setup 114do_test 115end_testcase 116