Shell script required

Hi,

I need shell script for getting the date in format from below text output

IP IS 10.238.52.65

[bsnl.in]pun-ras-bng-mhs-01#show conf port 2/4 

Building configuration...

Current configuration:
!
card ge3-4-port 2
!
port ethernet 2/4
  no shutdown
 encapsulation dot1q
 dot1q pvc 3000 
  description *** Uplink-1 to  Internet ***
  bind interface INET-UPLINK-1 bsnl.in
 dot1q pvc 3001 
  description *** Uplink for Management ***
  bind interface MGMT-UPLINK-1 mgmt
 dot1q pvc 3002 
  description *** Uplink to AAA ***
  bind interface AAA-UPLINK-1 local
 
IP IS 10.238.52.65

[K[bsnl.in]pun-ras-bng-mhs-01#show conf port 9/1 

[KBuilding configuration...

Current configuration:
!
card ge-4-port 9
!
port ethernet 9/1
  no shutdown
 encapsulation dot1q
 dot1q pvc 3003 
  description *** Uplink for Management ***
  bind interface MGMT-UPLINK-2 mgmt
 dot1q pvc 3004 
  description *** Uplink to AAA ***
  bind interface AAA-UPLINK-2 local
 dot1q pvc 3005 
  description *** Uplink-2 to  Internet ***
  bind interface INET-UPLINK-2 bsnl.in


IP IS 10.238.54.1


[bsnl.in]enk-ras-bng-cse-01#show conf port 1/4 

Building configuration...

Current configuration:
!
card ge3-4-port 1
!
port ethernet 1/4
  no shutdown
 encapsulation dot1q
 dot1q pvc 3000 
  description *** Uplink-1 to  Internet ***
  bind interface INET-UPLINK-1 bsnl.in
  forward policy INTERCEPT-POLICY in acl-counters
  forward policy INTERCEPT-POLICY out acl-counters
 dot1q pvc 3001 
  description *** Uplink for Management ***
  bind interface MGMT-UPLINK-1 mgmt
 dot1q pvc 3002 
  description *** Uplink to AAA ***
  bind interface AAA-UPLINK-1 local
  forward policy INTERCEPT-POLICY in acl-counters
  forward policy INTERCEPT-POLICY out acl-counters
 dot1q pvc 3008 
  description *** Uplink-1 to  IPTV-Smart Digivision ***
  bind interface DIGI-IPTV-UPLINK-1 iptv-digivision
  shutdown
 dot1q pvc 3012 
  description *** Uplink Interface-01 for  voip-ITI ***
  bind interface UPLINK-01 voip-ITI
 dot1q pvc 3016 
  description *** UPLINK FOR WIMAX-BTS-MGMT ***
  bind interface WIMAX-MGMT-UPLINK-1 wimaxmgmt
 dot1q pvc 3018 
  description *** Uplink interface-1 for WIMAX Connectivity ***
  bind interface WIMAX-UPLINK-1 wimax

I need the data in below format from shell script output

IP              HOST_NAME             PORT        CONTEXT_NAME      VLAN_ID
10.238.52.65    pun-ras-bng-mhs-01    PORT 2/4    bsnl.in            3000
10.238.52.65    pun-ras-bng-mhs-01    PORT 2/4    mgmt            3001
10.238.52.65    pun-ras-bng-mhs-01    PORT 2/4    local            3002
10.238.52.65    pun-ras-bng-mhs-01    PORT 9/1    bsnl.in         3003
10.238.52.65    pun-ras-bng-mhs-01    PORT 9/1    mgmt            3004
10.238.52.65    pun-ras-bng-mhs-01    PORT 9/1    local       3005
10.238.54.1    enk-ras-bng-cse-01    PORT 1/4    bsnl.in            3000
10.238.54.1    enk-ras-bng-cse-01    PORT 1/4    mgmt            3001
10.238.54.1    enk-ras-bng-cse-01    PORT 1/4    local            3002
10.238.54.1    enk-ras-bng-cse-01    PORT 1/4    iptv-digivision    3008
10.238.54.1    enk-ras-bng-cse-01    PORT 1/4    voip-ITI    3012
10.238.54.1    enk-ras-bng-cse-01    PORT 1/4    wimaxmgmt    3016
10.238.54.1    enk-ras-bng-cse-01    PORT 1/4    wimax            3018

can anybody help me

tnx in advance

PLEASE use code tags as demanded!
And, be more specific in your requirement. What should be picked where based on which condition. Then it'll be easier to help you.

Hi ,
i used below code for getting the required out put

egrep "IP IS| conf |ethernet|pvc|UPLINK"

output is like below

IP IS 10.238.52.65
[bsnl.in]pun-ras-bng-mhs-01#show conf port 2/4 
port ethernet 2/4
 dot1q pvc 3000 
  bind interface INET-UPLINK-1 bsnl.in
 dot1q pvc 3001 
  bind interface MGMT-UPLINK-1 mgmt
 dot1q pvc 3002 
  bind interface AAA-UPLINK-1 local
IP IS 10.238.52.65
[bsnl.in]pun-ras-bng-mhs-01#show conf port 9/1 
port ethernet 9/1
 dot1q pvc 3003 
  bind interface MGMT-UPLINK-2 mgmt
 dot1q pvc 3004 
  bind interface AAA-UPLINK-2 local
 dot1q pvc 3005 
  bind interface INET-UPLINK-2 bsnl.in
IP IS 10.238.54.1
[bsnl.in]enk-ras-bng-cse-01#show conf port 1/4 
port ethernet 1/4
 dot1q pvc 3000 
  bind interface INET-UPLINK-1 bsnl.in
 dot1q pvc 3001 
  bind interface MGMT-UPLINK-1 mgmt
 dot1q pvc 3002 
  bind interface AAA-UPLINK-1 local
 dot1q pvc 3008 
  bind interface DIGI-IPTV-UPLINK-1 iptv-digivision
 dot1q pvc 3012 
  bind interface UPLINK-01 voip-ITI
 dot1q pvc 3016 
  description *** UPLINK FOR WIMAX-BTS-MGMT ***
  bind interface WIMAX-MGMT-UPLINK-1 wimaxmgmt
 dot1q pvc 3018 
  bind interface WIMAX-UPLINK-1 wimax

The below things are to picked from textfile

1) ip adress from below line.

IP IS 10.238.52.65

output from line to be :

10.238.52.65

2) port number to be picked from below line

port ethernet 2/4

output from line to be

2/4

3) host to be picked from below line

[bsnl.in]pun-ras-bng-mhs-01#show conf port 2/4

output to be

pun-ras-bng-mhs-01

4) vlan id and context names to picked from below lines

dot1q pvc 3003
description *** Uplink for Management ***
bind interface MGMT-UPLINK-2 mgmt

output to be

3003   &  mgmt

Try this as a starting point. This works on linux mawk, not necessarily on other versions of awk (esp. the separator for split). As you can see, the conditions to pick fields are quite sensitive, so you might want to choose differently:

awk  'BEGIN     {print "IP HOST_NAME PORT CONTEXT_NAME VLAN_ID"}
     /IP IS/    {IP=$3}
     / conf /   {split ($1, Ar, "[\]#]"); HOST=Ar[2]; PORT=$NF} 
     /pvc/      {VLAN=$3}
     /UPLINK/   {CONTXT=$4; print IP, HOST, "PORT", PORT, CONTXT, VLAN}
    ' file
IP HOST_NAME PORT CONTEXT_NAME VLAN_ID
10.238.52.65 pun-ras-bng-mhs-01 PORT 2/4 bsnl.in 3000
10.238.52.65 pun-ras-bng-mhs-01 PORT 2/4 mgmt 3001
10.238.52.65 pun-ras-bng-mhs-01 PORT 2/4 local 3002
10.238.52.65 pun-ras-bng-mhs-01 PORT 9/1 mgmt 3003
10.238.52.65 pun-ras-bng-mhs-01 PORT 9/1 local 3004
10.238.52.65 pun-ras-bng-mhs-01 PORT 9/1 bsnl.in 3005
10.238.54.1 enk-ras-bng-cse-01 PORT 1/4 bsnl.in 3000
10.238.54.1 enk-ras-bng-cse-01 PORT 1/4 mgmt 3001
10.238.54.1 enk-ras-bng-cse-01 PORT 1/4 local 3002
10.238.54.1 enk-ras-bng-cse-01 PORT 1/4 iptv-digivision 3008
10.238.54.1 enk-ras-bng-cse-01 PORT 1/4 voip-ITI 3012
10.238.54.1 enk-ras-bng-cse-01 PORT 1/4 FOR 3016            <---  due to ambiguous condition (upper case UPLINK)
10.238.54.1 enk-ras-bng-cse-01 PORT 1/4 wimaxmgmt 3016
10.238.54.1 enk-ras-bng-cse-01 PORT 1/4 wimax 3018

Hi iam running the below script

[root@localhost surender]# awk  'BEGIN     {print "IP HOST_NAME PORT CONTEXT_NAME VLAN_ID"}
     /IP IS/    {IP=$3}
     / conf /   {split ($1, Ar, "[\]#]"); HOST=Ar[2]; PORT=$NF}
      /ethernet/      {PORT1=$3} 
     /pvc/      {VLAN=$3}
     /UPLINK/   {CONTXT=$4; print IP, PORT1,VLAN}
    ' n4

Iam getting below output

awk: cmd. line:2: warning: escape sequence `\]' treated as plain `]'

output is below.

IP HOST_NAME PORT CONTEXT_NAME VLAN_ID
 30008.52.65 2/4
 30018.52.65 2/4
 30028.52.65 2/4
 30148.52.65 2/4
 30188.52.65 2/4h

Align ment is not proper when giving all fields in print statement at a time.

when iam giving each filed at a time in a code output coming fine for each filed. when iam giving all fields at a time output is not properly aligned.please help.

I'd bet you have (windows ?) control chars (esp. CR = ^M = 0x0D = \r = <carriage return>) in your file, making fields overwrite part of the output line.

Hi,
Can somebody help me to get shell script to kill the process running more than 15.
for example:
-find the rsync process
-if running more than 15minutes kill the process using process (rsync) name.

@dhanik: Please start a new thread for this