OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 824 to Rev 825
    Reverse comparison

Rev 824 → Rev 825

/openrisc/trunk/gnu-stable/find-linuxes.sh
0,0 → 1,191
#!/bin/bash
 
# Copyright (C) 2011 Embecosm Limited
 
# Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
 
# This file is a script to start up a group of Linux instances
 
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3 of the License, or (at your option)
# any later version.
 
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
 
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
 
# ------------------------------------------------------------------------------
 
# See if telnet or ftp is working
 
# We call the program with a sequence
 
# command (telnet or ftp)
# wait for prompt ("telnet> "or "ftp> ")
# send open <ip address>
# wait for prompt ("login: " or "Name (<ip address>:<user>): ")
# send root
# wait for prompt ("# " or "ftp> ")
# send exit
# wait for closing message ("Connection closed by foreign host." or
# "221 Operation successful")
 
# @param[in] $1 The command to use (ftp or telnet)
# @param[in] $2 The IP address
# @param[in] $3 The connection prompt (regular expression)
# @param[in] $4 The operational prompt (regular expression)
# @param[in] $5 The closing message (regular expression)
 
# @return 0 on success, non-zero otherwise.
function check_remote_command {
 
command=$1
ip=$2
conn_prompt=$3
op_prompt=$4
close_mess=$5
 
expect -f - <<EOF > /dev/null 2>&1
spawn "${command}"
 
set timeout 30
expect {
"${command}> " {}
timeout {exit 1}
}
 
send "open ${ip}\n"
 
expect {
-re "${conn_prompt}" {}
timeout {exit 2}
}
 
send "root\n"
 
expect {
-re "${op_prompt}" {}
timeout {exit 3}
}
 
send "exit\n"
 
expect {
-re "${close_mess}" {exit 0}
timeout {exit 4}
}
EOF
 
return $?
}
 
 
# See if telnet is working.
 
# We call check_remote_command with appropriate arguments
 
# @param[in] $1 The IP address
 
# @return 0 on success, non-zero otherwise.
function check_telnet {
check_remote_command telnet $1 "^.* login: " "^.*# " \
"Connection closed by foreign host."
 
return $?
}
 
 
# See if FTP is working.
 
# We call check_remote_command with appropriate arguments
 
# @param[in] $1 The IP address
 
# @return 0 on success, non-zero otherwise.
 
function check_ftp {
check_remote_command ftp $1 "Name \\\($1:.*\\\): " "ftp> " \
"221 Operation successful"
 
return $?
}
 
 
# See if telnet and FTP are working.
 
# We combine calls to check_telnet and check_ftp. Note that we do check both,
# even though we really only need to check one for failure. However in the
# future the additional information may be useful.
 
# @param[in] $1 The IP address
 
# @return 0 on success, non-zero (10 x telnet failure + ftp failure)
# otherwise.
function check_telnet_ftp {
check_telnet $1
res_telnet=$?
check_ftp $1
res_ftp=$?
 
return $(( $res_telnet * 10 + $res_ftp ))
}
 
 
# IP list excluding all known IPs
ip_list="192.168.0.2-39,41-59,61-79,82-127,129,130,133-255"
ip_file=`dirname ${DEJAGNU}`/ip-avail.txt
tmp_file=/tmp/find-linuxes-$$
 
# Keep using nmap until we get the same number of IP addresses twice running.
nmap -sP -n ${ip_list} | \
sed -n -e 's/Nmap scan report for //p' | \
sort > ${ip_file}
len1=`wc -l ${ip_file} | cut -d " " -f 1`
nmap -sP -n ${ip_list} | \
sed -n -e 's/Nmap scan report for //p' | \
sort > ${ip_file}
len2=`wc -l ${ip_file} | cut -d " " -f 1`
 
while [ ${len1} -ne ${len2} ]
do
len1=${len2}
nmap -sP -n ${ip_list} | \
sed -n -e 's/Nmap scan report for //p' | \
sort > ${ip_file}
len2=`wc -l ${ip_file} | cut -d " " -f 1`
done
 
# If we have a -c flag, check that the targets respond to telnet and ftp
if [ $# > 0 -a "x$1" == "x-c" ]
then
mv ${ip_file} ${tmp_file}
touch ${ip_file}
 
len=`wc -l ${tmp_file} | cut -d " " -f 1`
while [ ${len} -gt 0 ]
do
# Get each IP address in turn
ip=`tail -${len} ${tmp_file} | head -1`
len=$(( ${len} - 1 ))
 
check_telnet_ftp ${ip}
res=$?
 
if [ ${res} -eq 0 ]
then
echo ${ip} >> ${ip_file}
else
echo "${ip} failed to respond to telnet/FTP: result ${res}"
fi
done
 
rm ${tmp_file}
fi
 
# Print the results
cat ${ip_file}
openrisc/trunk/gnu-stable/find-linuxes.sh Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: openrisc/trunk/gnu-old/find-linuxes.sh =================================================================== --- openrisc/trunk/gnu-old/find-linuxes.sh (revision 824) +++ openrisc/trunk/gnu-old/find-linuxes.sh (nonexistent) @@ -1,191 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2011 Embecosm Limited - -# Contributor Jeremy Bennett - -# This file is a script to start up a group of Linux instances - -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the Free -# Software Foundation; either version 3 of the License, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. - -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . - -# ------------------------------------------------------------------------------ - -# See if telnet or ftp is working - -# We call the program with a sequence - -# command (telnet or ftp) -# wait for prompt ("telnet> "or "ftp> ") -# send open -# wait for prompt ("login: " or "Name (:): ") -# send root -# wait for prompt ("# " or "ftp> ") -# send exit -# wait for closing message ("Connection closed by foreign host." or -# "221 Operation successful") - -# @param[in] $1 The command to use (ftp or telnet) -# @param[in] $2 The IP address -# @param[in] $3 The connection prompt (regular expression) -# @param[in] $4 The operational prompt (regular expression) -# @param[in] $5 The closing message (regular expression) - -# @return 0 on success, non-zero otherwise. -function check_remote_command { - - command=$1 - ip=$2 - conn_prompt=$3 - op_prompt=$4 - close_mess=$5 - - expect -f - < /dev/null 2>&1 - spawn "${command}" - - set timeout 30 - expect { - "${command}> " {} - timeout {exit 1} - } - - send "open ${ip}\n" - - expect { - -re "${conn_prompt}" {} - timeout {exit 2} - } - - send "root\n" - - expect { - -re "${op_prompt}" {} - timeout {exit 3} - } - - send "exit\n" - - expect { - -re "${close_mess}" {exit 0} - timeout {exit 4} - } -EOF - - return $? -} - - -# See if telnet is working. - -# We call check_remote_command with appropriate arguments - -# @param[in] $1 The IP address - -# @return 0 on success, non-zero otherwise. -function check_telnet { - check_remote_command telnet $1 "^.* login: " "^.*# " \ - "Connection closed by foreign host." - - return $? -} - - -# See if FTP is working. - -# We call check_remote_command with appropriate arguments - -# @param[in] $1 The IP address - -# @return 0 on success, non-zero otherwise. - -function check_ftp { - check_remote_command ftp $1 "Name \\\($1:.*\\\): " "ftp> " \ - "221 Operation successful" - - return $? -} - - -# See if telnet and FTP are working. - -# We combine calls to check_telnet and check_ftp. Note that we do check both, -# even though we really only need to check one for failure. However in the -# future the additional information may be useful. - -# @param[in] $1 The IP address - -# @return 0 on success, non-zero (10 x telnet failure + ftp failure) -# otherwise. -function check_telnet_ftp { - check_telnet $1 - res_telnet=$? - check_ftp $1 - res_ftp=$? - - return $(( $res_telnet * 10 + $res_ftp )) -} - - -# IP list excluding all known IPs -ip_list="192.168.0.2-39,41-59,61-79,82-127,129,130,133-255" -ip_file=`dirname ${DEJAGNU}`/ip-avail.txt -tmp_file=/tmp/find-linuxes-$$ - -# Keep using nmap until we get the same number of IP addresses twice running. -nmap -sP -n ${ip_list} | \ - sed -n -e 's/Nmap scan report for //p' | \ - sort > ${ip_file} -len1=`wc -l ${ip_file} | cut -d " " -f 1` -nmap -sP -n ${ip_list} | \ - sed -n -e 's/Nmap scan report for //p' | \ - sort > ${ip_file} -len2=`wc -l ${ip_file} | cut -d " " -f 1` - -while [ ${len1} -ne ${len2} ] -do - len1=${len2} - nmap -sP -n ${ip_list} | \ - sed -n -e 's/Nmap scan report for //p' | \ - sort > ${ip_file} - len2=`wc -l ${ip_file} | cut -d " " -f 1` -done - -# If we have a -c flag, check that the targets respond to telnet and ftp -if [ $# > 0 -a "x$1" == "x-c" ] -then - mv ${ip_file} ${tmp_file} - touch ${ip_file} - - len=`wc -l ${tmp_file} | cut -d " " -f 1` - while [ ${len} -gt 0 ] - do - # Get each IP address in turn - ip=`tail -${len} ${tmp_file} | head -1` - len=$(( ${len} - 1 )) - - check_telnet_ftp ${ip} - res=$? - - if [ ${res} -eq 0 ] - then - echo ${ip} >> ${ip_file} - else - echo "${ip} failed to respond to telnet/FTP: result ${res}" - fi - done - - rm ${tmp_file} -fi - -# Print the results -cat ${ip_file}
openrisc/trunk/gnu-old/find-linuxes.sh Property changes : Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -Id \ No newline at end of property

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.