Program based on hostname


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Program based on hostname
# 1  
Old 08-15-2013
Program based on hostname

Hi
Can you help me get the script for below requirement.
when i run below script
Code:
./script QM hostname

script should be working in below
here inputs are QM and hostname
by taking inputs it should work like below
Code:
QM=$1
if QM name ends with  1 $4 should be 51431 
                ends with  2 $4 should be 51432
                               3 $4 should be 51433
                               4 $4 should be 51434

and hostname should be converted into IP adress. i think it should be hostname -i to convert hostname into IP (IP address is $3)
then it should perform below command
Code:
 
echo $1 >&2 \ export MQSERVER=SYSTEM.DEF.SVRCONN/TCP/'$3($4)' \ ./qload -ISYSTEM.DEAD.LETTER.QUEUE -lmqic32 -m$1 >&2

# 2  
Old 08-15-2013
You can use if-then-else
Code:
  if [[ $1 =~ 1$ ]] && [[ $4 != 51431 ]]; then
    ...
  elif ...
    ...
  fi

Or a case-statement might be simpler.

[/code]
Code:
  case "$QM" in
    *1) NEED=51431;;
    *2) NEED=51432;;
    *3) NEED=51433 ;;
    *4) NEED=51434;;
    ?) NEED=-1;;
  esac

  if [ "$4" -ne "$NEED" ]; then
    echo "\$4 should be $NEED"
    : ...
  fi

Maybe you can use the host command to get the IP address (but I think you're using Solaris, and I'm not sure if the host command is available there), otherwise nslookup if it's in DNS.
# 3  
Old 08-15-2013
Command giving as
Code:
./sco.sh
Enter QM
Enter hostname

Script is
Code:
#!/bin/ksh
QM=$1
echo "enter QM"
read QM
hostname=$2
echo "enter hostname"
read hostname
case "$QM" in
    *1) NEED=51431;;
    *2) NEED=51432;;
    *3) NEED=51433 ;;
    *4) NEED=51434;;
    ?) NEED=-1;;
  esac
  if [ "$4" -ne "$NEED" ]; then
    echo "\$4 should be $NEED"
    : ...
  fi

but it is printing output as below
Code:
$4 should be 51431

what i want is 51431 should be assigned to $4
till here it is first part
second part is converting hostname into IP adress
Code:
$3=hostname -i

then $1 (QM) , $3 (Converted IPAdress) and $4 (PORT) should be assigned in below code

Code:
echo $1 >&2 \ export MQSERVER=SYSTEM.DEF.SVRCONN/TCP/'$3($4)' \ ./qload -ISYSTEM.DEAD.LETTER.QUEUE -lmqic32 -m$1 >&2

---------- Post updated at 10:03 AM ---------- Previous update was at 09:13 AM ----------

I tried below code, but it is not giving any output

Code:
#!/bin/ksh
QM=$1
echo "enter QM"
read QM
hostname=$2
echo "enter hostname"
read hostname
case "$QM" in
    *1) NEED=51431;;
    *2) NEED=51432;;
    *3) NEED=51433;;
    *4) NEED=51434;;
    ?) NEED=-1;;
  esac
  if [ "$PORT" -ne "$NEED" ]; then
 
PORT=$4
 
  fi
$3=$hostname -i
echo $1 >&2 \ export MQSERVER=SYSTEM.DEF.SVRCONN/TCP/'$3($4)' \ ./qload -ISYSTEM.DEAD.LETTER.QUEUE -lmqic32 -m$1 >&2

# 4  
Old 08-15-2013
A little effort in transfering proposals to your own solution should be invested, don't you think, too?
Assigning single positional parameters is not that easy. Try (this bashism):
Code:
case "${QM:${#QM}-1:1}" in
     1) NEED=51431;;
     2) NEED=51432;;
     3) NEED=51433;;
     4) NEED=51434;;
     ?) NEED=-1;;
   esac
TMP=($@)
TMP[3]="$NEED"
set ${TMP[@]}

# 5  
Old 08-16-2013
I am trying from my end and then only asking for your help. That is why i am posting replies late.

throwing below error
Code:
./jj.sh[9]: "${QM:${#QM}-1:1}": bad substitution

till below code it is fine

Code:
#!/bin/ksh
QM=$1
echo "enter QM"
read QM
hostname=$2
echo "enter hostname"
read hostname
case "$QM" in
    *1) NEED=51431;;
    *2) NEED=51432;;
    *3) NEED=51433;;
    *4) NEED=51434;;
    ?) NEED=-1;;
  esac

here how to store that value of 51431 or smnthg?

then need to get IP address from hostname by using hostname -i

and keep in below command

Code:
echo $1 >&2 \ export MQSERVER=SYSTEM.DEF.SVRCONN/TCP/'$3($4)' \ ./qload -ISYSTEM.DEAD.LETTER.QUEUE -lmqic32 -m$1 >&2

Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Hostname -f hostname: Unknown host

deleted (0 Replies)
Discussion started by: hce
0 Replies

2. Shell Programming and Scripting

Sleep timer based on hostname

Dear all I have a bunch of hosts which I need to run a common script. I need a sleep timee which will delay the execution based on the hostname. Usually the hostname of the servers are host01, host02 .. host16 with which I cam up with this - #!/bin/bash sleeptimer=$(( $(hostname -s|tr -cd... (3 Replies)
Discussion started by: deunan
3 Replies

3. Programming

C program - convert values based on the position

Hey! I'm new to C. I need to covert certain values using C. please see the below. I have figured out the logic to do it. Please provide some hints to do this with C Logic: If first position of POS = 0, shift POS to the left one byte. If third position of POS = 0, move spaces to third... (1 Reply)
Discussion started by: rocker_me2002
1 Replies

4. Emergency UNIX and Linux Support

HP UX - ILO Console hostname different than Machine Hostname...

Hi All, So we added a new HP-UX 11.31 machine. Copied OS via Ignite-UX (DVD)over from this machine called machine_a. It was supposed to be named machine_c. And it is when you log in...however when I'm in the ILO console before logging in, it says: It should say: What gives? And how do... (4 Replies)
Discussion started by: zixzix01
4 Replies

5. UNIX for Dummies Questions & Answers

Problem in GUI based program on Sun Solaris

Hello! I am trying to run a program which has used Xlib for its graphical user interface on Solaris through Common Desktop Environment(CDE). All I get is my three required widows open but all blank.They suppose to show some symbols, pictures ad buttons.In the command terminal the following... (1 Reply)
Discussion started by: asif92
1 Replies

6. UNIX for Dummies Questions & Answers

proceed through a menu-based program with a script?

I am trying to figure out a way to proceed through a menu-based program in UNIX with just one command to execute several steps. Is this possible? From the command prompt I would normally type the name of the program, 'disk_analysis' to start the program and bring up its menu. I would then... (4 Replies)
Discussion started by: nichola$
4 Replies

7. UNIX for Dummies Questions & Answers

Solaris - unknown hostname - how can I change hostname?

Hello, I am new to Solaris. I am using stand alone Solaris 10.0 for test/study purpose and connecting to internet via an ADSL modem which has DHCP server. My Solaris is working on VMWare within winXP. My WinXP and Solaris connects to internet by the same ADSL modem via its DHCP at the same... (1 Reply)
Discussion started by: XNOR
1 Replies

8. UNIX for Advanced & Expert Users

dos based ssh/telnet login program

I want to find a program that can run in DOS, login to a ssh/telnet server, then run a specifed command to do a daily jobs, can anyone tell me is there any application i can find in the internet? (2 Replies)
Discussion started by: zp523444
2 Replies
Login or Register to Ask a Question