NS2 Nam And Trace Files Are Always Empty

Hi everybody,
I need help!
I wrote a script in which, a mobile node across the umts, the WIMAX and the WIFI coverage to test the vertical handover .
But the out.nam file and the trace one are always empty, the script is correct there is no errors !!!!
please help


Similar Content



Handover Vertical

Hello , guys can reap the handover of data between wifi and wimax ? and identify the impact that occur at the time the handover ?

Vertical Handover Between Wimax And Wifi Code

I m new an ns-2
Can anyone help to write my code "Vertical handover between wi-max and wifi based on ieee 802.21
Is there any standard code?
Thanks in advance

Can't Determine Error

sed: -e expression #1, char 31: unterminated `s' command

Does anyone know what might be causing this error message? It seems to also cause some strange empty files like sedTlU3nF and sedCrMjXk to be created. I get this error after adding some code to a script that is correct. The script runs ok even with the errors.

NS2 + Wimax, Erro Ao Executa O Script.

Hello, good guys am new to linux and also the issue of NS2, I need to run by the NS2 + WiMAX + LTE, the more I'm in trouble, I did this step by step http://gotoanswer.stanford.edu/?q=in...imax+in+ns2.35, installed straight over at the time I enter / ns2-35 / tcl / wimax and run a script with the $ ns wimax-script.tcl command it returns an error as shown in the image below, if anyone can help me I would be very grateful, hugs.

@obs.:I am using windows to make the simulation more the same error is repeated in linux.

https://dl-web.dropbox.com/get/Captu...K-UC2uSPQn_xtA

Terminal Not Responding

i m running file following tcl script but terminal shows nothing no error no nam file nothing
whats wrong with this script??????


set ns [new Simulator]

set nf [open out.nam w]
$ns namtrace-all $nf

proc finish {} {
global ns nf
$ns flush-trace
close $nf
exec nam out.nam &
exit 0
}

for {set i 0} {$i < 7} {incr $i} {
set n($i) [$ns node]
}

for {set i 0} {$i < 7} {incr $i} {
$ns duplex-link n($i) n([expr ($i+1)%7]) 1mb 10ms dropTail

$ns at 5.0 "finish"

$ns run

i write ns example3.tcl on terminal but terminal shows nothing even after waiting for long. when choose to close terminal it shows msg something running want to kill terminal

Error In Vertical Handover Code

Hey,
I got some error when i execute the following code :
#check input parameters
Code:
if {$argc != 0} {

    puts ""

    puts "Wrong Number of Arguments! No arguments in this topology"

    puts ""

    exit (1)

}



global ns



#set debug output for components

Agent/ND set debug_ 1

Agent/MIH set debug_ 1

Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set debug_ 1

Agent/MIHUser/IFMNGMT/MIPV6 set debug_ 1

Agent/MIHUser/IFMNGMT set debug_ 1

Mac/802_11 set debug_ 0

Mac/802_16 set debug_ 0



#define DEBUG parameters

set quiet 0



#defines ND attributes to fit the example

Agent/ND set maxRtrAdvInterval_ 1.0

Agent/ND set minRtrAdvInterval_ 0.5

Agent/ND set minDelayBetweenRA_ 0.5



#Handover

Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set case_ 3



#defines ND: Neihbor discovery attributes to fit the example

Agent/ND set maxRtrAdvInterval_ 1.0

Agent/ND set minRtrAdvInterval_ 0.5

Agent/ND set minDelayBetweenRA_ 0.5



#defines function for flushing and closing files

proc finish {} {

    global ns f namtrace

    $ns flush-trace

    close $f

   
exec nam outtest.nam &
close $namtrace

    puts " Simulation ended."

    exit 0

}



# set global variables

set output_dir .



#create the simulator

set ns [new Simulator]

$ns use-newtrace



set opt(x)        2000               ;# X dimension of the topography

set opt(y)        2000               ;# Y dimension of the topography



#create the topography

set topo [new Topography]

$topo load_flatgrid $opt(x) $opt(y)





# create God

create-god 20  

puts ""



#Simulation process is written to the trace file

set f [open out.tr w]

$ns trace-all $f

set namfile [open outtest.nam w]

#$ns namtrace-all-wireless $namfile $opt(x) $opt(y)   

$ns namtrace-all-wireless $namfile 2000 2000



# set up for hierarchical routing (needed for routing over a basestation)

$ns node-config -addressType hierarchical

AddrParams set domain_num_  7                     ;# domain number

AddrParams set cluster_num_ {1 1 1 1 1 1 1}          ;# cluster number for each domain

AddrParams set nodes_num_   {6 6 6 6 6 6 6}          ;# number of nodes for each cluster      




# parameter for wireless nodes

set opt(chan)           Channel/WirelessChannel    ;# channel type for 802.11

set opt(prop)           Propagation/TwoRayGround   ;# radio-propagation model 802.11

set opt(netif)          Phy/WirelessPhy            ;# network interface type 802.11

set opt(mac)            Mac/802_11                 ;# MAC type 802.11

set opt(ifq)            Queue/DropTail/PriQueue    ;# interface queue type 802.11

set opt(ll)             LL                         ;# link layer type 802.11

set opt(ant)            Antenna/OmniAntenna        ;# antenna model 802.11

set opt(ifqlen)         50                         ;# max packet in ifq 802.11

set opt(adhocRouting)   DSDV                       ;# routing protocol 802.11

set opt(umtsRouting)    ""                         ;# routing for UMTS (to reset node config)

set opt(channel)        [new $opt(chan)]           ;# channel to be shared by all wireless nodes





#Rate at which the nodes start moving

set moveStart 10

set moveStop 130

#Speed of the mobile nodes (m/sec)

set moveSpeed 1



#origin of the MN

set X_src 40.0

set Y_src 100.0

set X_dst 160.0

set Y_dst 100.0





# creation of the Mobile Node (MutiFaceNodes). It MUST be done before the 802.11

$ns node-config  -multiIf ON                            ;#to create MultiFaceNode 

set multiFaceNode [$ns node 4.0.0] 

$ns node-config  -multiIf OFF                           ;#reset attribute

$ns at 0.05 "$multiFaceNode label "MN 5.0.0""

if {$quiet == 0} {

	puts "multiFaceNode(MN) has been created"

        puts ""

}



# creation of the Correspondant Node

set host0 [$ns node 1.0.1] ;# node id is 5

$ns at 0.05 "$host0 label "CN 1.0.1""

if {$quiet == 0} {

	puts "host(CN) has been created"

        puts ""

}



$ns set hsdschEnabled_ 1addr

$ns set hsdsch_rlc_set_ 0

$ns set hsdsch_rlc_nif_ 0



# configure RNC node

puts "________RNC Configuration________"

$ns node-config -UmtsNodeType rnc 

set rnc [$ns create-Umtsnode 0.0.0] ;

$ns at 0.05 "$rnc label "RNC 0.0.0""

if {$quiet == 0} {

	puts "RNC: tcl=$rnc; id=[$rnc id]; addr=[$rnc node-addr]"

	puts ""

}



# configure UMTS base station

puts "________UMTS Base Station Configuration________"

$ns node-config -UmtsNodeType bs \

		-downlinkBW 384kbs \

		-downlinkTTI 10ms \

		-uplinkBW 384kbs \

		-uplinkTTI 10ms \

	        -hs_downlinkTTI 2ms \

		-hs_downlinkBW 384kbs 



set bsUMTS [$ns create-Umtsnode 0.0.1] 

$ns at 0.05 "$bsUMTS label "UMTS_BS 0.0.0""

if {$quiet == 0} {

	puts "UMTS_Base_Station: tcl=$bsUMTS; id=[$bsUMTS id]; addr=[$bsUMTS node-addr]"

        puts ""

}



puts "----------------------------------------------"

puts ""

# connect RNC and base station

puts "Connecting RNC and Base Station..."

$ns setup-Iub $bsUMTS $rnc 622Mbit 622Mbit 15ms 15ms DummyDropTail 2000 color red



$ns node-config -UmtsNodeType ue \

		-baseStation $bsUMTS \

		-radioNetworkController $rnc

if {$quiet == 0} {

	puts "....Connecting successfully"

	puts ""

}

puts "----------------------------------------------"

puts ""

# creation of the wireless interface UMTS

set iface0 [$ns create-Umtsnode 0.0.2]

if {$quiet == 0} {

puts "iface0: tcl=$iface0; id=[$iface0 id]; addr=[$iface0 node-addr]"

puts "________iface0 created"

}



#define UMTS color 

$rnc color red

$bsUMTS color red


#define coverage area for 802.11 stations: 20m coverage, Freq: 2.4Ghz

Phy/WirelessPhy set Pt_ 0.025

Phy/WirelessPhy set freq_ 2412e+6

Phy/WirelessPhy set RXThresh_ 6.12277e-09

Phy/WirelessPhy set CSThresh_ [expr 0.9*[Phy/WirelessPhy set RXThresh_]]



# configure rate for 802.11

Mac/802_11 set basicRate_ 11Mb

Mac/802_11 set dataRate_ 11Mb

Mac/802_11 set bandwidth_ 11Mb



# configure Access Points

$ns node-config  -adhocRouting $opt(adhocRouting) \

                 -llType $opt(ll) \

                 -macType $opt(mac) \

                 -channel $opt(channel) \

                 -ifqType $opt(ifq) \

                 -ifqLen $opt(ifqlen) \

                 -antType $opt(ant) \

                 -propType $opt(prop)    \

                 -phyType $opt(netif) \

                 -topoInstance $topo \

                 -wiredRouting ON \

                 -agentTrace ON \

                 -routerTrace OFF \

                 -macTrace ON  \

                 -movementTrace OFF



# configure Base station 802.11

set bstation802_11 [$ns node 3.0.0] ;

$ns at 0.05 "$bstation802_11 label "WLAN_BS 3.0.0""

if {$quiet == 0} {

	puts "WLAN Base Station_id =$bstation802_11"

}

$bstation802_11 set X_ 680.0

$bstation802_11 set Y_ 1000.0

$bstation802_11 set Z_ 0.0



# we need to set the BSS for the base station

set bstationMac [$bstation802_11 getMac 0]

set AP_ADDR_0 [$bstationMac id]

if {$quiet == 0} {

	puts "Basic Service Set_id for WAN_bstation =$AP_ADDR_0"

}

$bstationMac bss_id $AP_ADDR_0

$bstationMac enable-beacon

$bstationMac set-channel 1





# creation of the wireless interface 802.11

$ns node-config -wiredRouting OFF \

                -macTrace ON                

set iface1 [$ns node 3.0.1]                                        ;

$iface1 random-motion 0                                       ;# disable random motion

$iface1 base-station [AddrParams addr2id [$bstation802_11 node-addr]] ;#attach mn to basestation

$iface1 set X_ 480.0   ;# $iface1 set X_ $X_src

$iface1 set Y_ 1000.0  ;# $iface1 set Y_ $Y_src

$iface1 set Z_ 0.0



[$iface1 getMac 0] set-channel 1

if {$quiet == 0} {

puts "iface1: tcl=$iface1; id=[$iface1 id]; addr=[$iface1 node-addr]"           

puts "________iface1 created"

}

#define WLAN color 

$bstation802_11 color blue


#note: we put 16 on a different channel to avoid dealing with interferences

set opt(mac)            Mac/802_16

set opt(netif)          Phy/WirelessPhy/OFDM



#define coverage area for 802.16 stations:

Phy/WirelessPhy set Pt_ 0.025

Phy/WirelessPhy set RXThresh_ 2.025e-12

Phy/WirelessPhy set CSThresh_ [expr 0.9*[Phy/WirelessPhy set RXThresh_]]





$ns node-config  -adhocRouting $opt(adhocRouting) \

                 -llType $opt(ll) \

                 -macType $opt(mac) \

                 -channel $opt(channel) \

                 -ifqType $opt(ifq) \

                 -ifqLen $opt(ifqlen) \

                 -antType $opt(ant) \

                 -propType $opt(prop)    \

                 -phyType $opt(netif) \

                 -topoInstance $topo \

                 -wiredRouting ON \

                 -agentTrace ON \

                 -routerTrace OFF \

                 -macTrace ON  \

                 -movementTrace OFF



# configure Base station 802.16

set bstation802_16 [$ns node 4.0.0] ;

$ns at 0.05 "$bstation802_16 label "WIMAX_BS 4.0.0""

if {$quiet == 0} {

	puts "WIMAX Base Station_id =$bstation802_16"

}

$bstation802_16 random-motion 0

$bstation802_16 set X_ 1000

$bstation802_16 set Y_ 1000

$bstation802_16 set Z_ 0.0

puts "bstation802_16: tcl=$bstation802_16; id=[$bstation802_16 id]; addr=[$bstation802_16 node-addr]"



set clas [new SDUClassifier/Dest]

[$bstation802_16 set mac_(0)] add-classifier $clas



set bs_sched [new WimaxScheduler/BS]

[$bstation802_16 set mac_(0)] set-scheduler $bs_sched

[$bstation802_16 set mac_(0)] set-channel 1


# creation of the wireless interface 802.16

$ns node-config -wiredRouting OFF \

                -macTrace ON                

set iface2 [$ns node 4.0.1]                                        ;# node id is 12.   

$iface2 random-motion 0                                       ;# disable random motion

$iface2 base-station [AddrParams addr2id [$bstation802_16 node-addr]] ;#attach mn to basestation

$iface2 set X_ 480.0   ;# $iface1 set X_ $X_src

$iface2 set Y_ 1000.0  ;# $iface1 set Y_ $Y_src

$iface2 set Z_ 0.0

set clas [new SDUClassifier/Dest]

[$iface2 set mac_(0)] add-classifier $clas

set ss_sched [new WimaxScheduler/SS]

[$iface2 set mac_(0)] set-scheduler $ss_sched

[$iface2 set mac_(0)] set-channel 1

if {$quiet == 0} {

puts "iface2: tcl=$iface2; id=[$iface2 id]; addr=[$iface2 node-addr]"  

puts "________iface2 created"         

}



#define WIMAX color 

$bstation802_16 color green





# add interfaces to MultiFaceNode

$multiFaceNode add-interface-node $iface0

$multiFaceNode add-interface-node $iface1

$multiFaceNode add-interface-node $iface2



# define node movement. We start from outside the coverage, cross it and leave.

$ns at 20 "$iface0 setdest 1600.0 1000.0 3.0"

# define node movement. We start from outside the coverage, cross it and leave.

$ns at 20 "$iface1 setdest 1600.0 1000.0 3.0"

# define node movement. We start from outside the coverage, cross it and leave.

$ns at 20 "$iface2 setdest 1600.0 1000.0 3.0"

puts "----------------------------------------------"





#creation of backbones

set router0 [$ns node 1.0.0]

$ns at 0.05 "$router0 label "router0 1.0.0""

if {$quiet == 0} {

puts "router0: tcl=$router0; id=[$router0 id]; addr=[$router0 node-addr]"  

puts "________router0 created"         

}



set router1 [$ns node 2.0.0]

$ns at 0.05 "$router0 label "router1 2.0.0""

if {$quiet == 0} {

puts "router0: tcl=$router1; id=[$router1 id]; addr=[$router1 node-addr]"  

puts "________router1 created"         

puts ""

}






# topology Links..."

$ns duplex-link $rnc $router1 622Mbit 0.4ms DropTail 1000 color red

$ns trace-queue $rnc $router1 $f

$ns duplex-link $router1 $router0 100MBit 5ms DropTail 1000 

$ns trace-queue $router1 $router0 $f

$ns duplex-link $router0 $host0 100MBit 5ms DropTail 1000

$ns trace-queue $router0 $host0 $f

$rnc add-gateway $router1



# add link WLAN base station to backbone

$ns duplex-link $bstation802_11 $router1 100MBit 15ms DropTail 1000 color blue

$ns trace-queue $router1 $bstation802_11 $f



# add link WIMAX base station to backbone

$ns duplex-link $bstation802_16 $router1 100MBit 15ms DropTail 1000 color green

$ns trace-queue $router1 $bstation802_16 $f

if {$quiet == 0} {

	puts "....Connecting successfully"

	puts ""

}



#neighbor discovery module

# UMTS (Note: The ND module is on the rnc node NOT in the base station)

set nd_bsUMTS [$rnc install-nd]

$nd_bsUMTS set-router TRUE

$nd_bsUMTS router-lifetime 1800

$nd_bsUMTS enable-broadcast FALSE

$nd_bsUMTS add-ra-target 0.0.2 ; # adding ra-target (Router Advertisement)

				 # in UMTS there is no notion of broadcast.

				 # We fake it by sending unicast to a list of nodes

set nd_ue [$iface0 install-nd]



# WLAN

set nd_bs [$bstation802_11 install-nd]

$nd_bs set-router TRUE

$nd_bs router-lifetime 1800

set nd_mn [$iface1 install-nd]



# WIMAX

set nd_bs2 [$bstation802_16 install-nd]

$nd_bs2 set-router TRUE

$nd_bs2 router-lifetime 1800

set nd_mn2 [$iface2 install-nd]



# router1

set nd_router [$router1 install-nd]

$nd_router set-router TRUE

$nd_router router-lifetime 1800



# router0

set nd_router_0 [$router0 install-nd]

$nd_router_0 set-router TRUE

$nd_router_0 router-lifetime 1800

if {$quiet == 0} {

	puts "....Configuration successfully"

	puts ""

}

#mih module
# install interface manager into the Mobile Node (multi-interface node)

Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1 set case_ 2

set handover [new Agent/MIHUser/IFMNGMT/MIPV6/Handover/Handover1]

$multiFaceNode install-ifmanager $handover



# adding handover module to the UMTS iface0

$nd_ue set-ifmanager $handover



# adding handover module to the WLAN iface1

$nd_mn set-ifmanager $handover

$handover nd_mac $nd_mn [$iface1 set mac_(0)] ;#to know how to send RS messages (Ready to sent)



# adding handover module to the WIMAX iface2

$nd_mn2 set-ifmanager $handover 

$handover nd_mac $nd_mn2 [$iface2 set mac_(0)] ;#to know how to send RS messages (Ready to sent)



# install interface manager into the Correspondant Node (host0)

set ifmgmt_cn [$host0 install-default-ifmanager]



# install MIH in multi-interface node

set mih [$multiFaceNode install-mih]



$handover connect-mih $mih ;#create connection between MIH and iface management





# install MIH on AP/BS

set mih_bs [$bstation802_11 install-mih]

set tmp_bs [$bstation802_11 set mac_(0)]

$tmp_bs mih $mih_bs

$mih_bs add-mac $tmp_bs



set mih_bs [$bstation802_16 install-mih]

set tmp_bs [$bstation802_16 set mac_(0)]

$tmp_bs mih $mih_bs

$mih_bs add-mac $tmp_bs

#traffic tcp between cn and multi interface

#Create a UDP agent

set udp_ [new Agent/UDP]

$udp_ set packetSize_ 1500

if {$quiet == 0} {

	puts "...UDP on node : $udp_"

}

# Create a CBR traffic source and attach it to udp

set cbr_ [new Application/Traffic/CBR]

$cbr_ set packetSize_ 500

$cbr_ set interval_ 0.2

$cbr_ attach-agent $udp_

if {$quiet == 0} {

	puts "...CBR created : $cbr_"

}

# Create the Null agent to sink traffic

set udp_test_sink [new Agent/Null]

$ns attach-agent $iface0 $udp_test_sink

$ns connect $udp_ $udp_test_sink

if {$quiet == 0} {

	puts "...TEST_SINK created : $udp_test_sink"

}

#host0 is transmitter    

$ns attach-agent $host0 $udp_

if {$quiet == 0} {

        puts ""

	puts "...Attachement Successfully"

}	

#Multiface node is receiver

$multiFaceNode attach-agent $udp_test_sink $iface0 ;#4

$handover add-flow $udp_test_sink $udp_ $iface0 1

if {$quiet == 0} {

	puts "...MN added flow"

}





# do registration in UMTS. This will create the MACs in UE and base stations

$ns node-config -llType UMTS/RLC/AM \

	-downlinkBW 384kbs \

	-uplinkBW 384kbs \

	-downlinkTTI 20ms \

	-uplinkTTI 20ms \

	-hs_downlinkTTI 2ms \

	-hs_downlinkBW 384kbs



if {$quiet == 0} {

	puts "Configuration UMTS Node..."

}



set dch0 [$ns create-dch $iface0 $udp_test_sink]

$ns attach-dch $iface0 $handover $dch0

$ns attach-dch $iface0 $nd_ue $dch0

if {$quiet == 0} {

	puts "...Attachement Successfully"

}



# Now we can register the MIH module with all the MACs

set tmp2 [$iface0 set mac_(2)] ;#in UMTS and using DCH the MAC to use is 2 (0 and 1 are for RACH and FACH)

$tmp2 mih $mih

$mih add-mac $tmp2	       ;#inform the MIH about the local MAC

set tmp2 [$iface1 set mac_(0)] ;#in 802.11 one interface is created

$tmp2 mih $mih

$mih add-mac $tmp2	       ;#inform the MIH about the local MAC

set tmp2 [$iface2 set mac_(0)] ;#in 802.16 one interface is created

$tmp2 mih $mih

$mih add-mac $tmp2             ;#inform the MIH about the local MAC

if {$quiet == 0} {

	puts "....Configuration finished successfully"

	puts ""

}



#Start the Application

$ns at 0.1 "$cbr_ start"

$ns at 4.0 "$cbr_ stop"

$ns at 5.0 "finish"

 

if {$quiet == 0} { 

puts " Simulation is running ... please wait ..." 

}
$ns run

I got this error:
can't read "Node_(10)": no such element in array
while executing
"return $Node_($id)"
(procedure "_o3" line 3)
(Simulator get-node-by-id line 3)
invoked from within
"$self get-node-by-id [lindex $L 1]"
(procedure "_o3" line 15)
(Simulator compute-hier-routes line 15)
invoked from within
"$self compute-hier-routes "
invoked from within
"if [Simulator hier-addr?] {
$self compute-hier-routes
} else {
$self compute-flat-routes
}"
(procedure "_o3" line 2)
(Simulator compute-routes line 2)
invoked from within
"[Simulator instance] compute-routes"
(procedure "Agent/rtProto/Static" line 2)
(Agent/rtProto/Static init-all line 2)
invoked from within
"Agent/rtProto/Static init-all"
invoked from within
"if [info exists rtprotos_] {
foreach proto [array names rtprotos_] {
eval Agent/rtProto/$proto init-all $rtprotos_($proto)
}
} else {
Agent/rtProto/St..."
(procedure "_o474" line 3)
(RouteLogic configure line 3)
invoked from within
"[$self get-routelogic] configure"
(procedure "_o3" line 5)
(Simulator run line 5)
invoked from within
"$ns run"
(file "test1.tcl" line 539)


How can I fix it???
Thanks in advance

Error:: "wrong # Args: Should Be "set VarName ?newValue?" " While Running TCL Script

I m learning Tcl and write short code. After running code i got same error repeatedly and not able to find mistake,,,i wrote it as it is from a tutorial. here is the code below

set ns [new Simulator]

set f1 [open out.nam w] #open nam file out.nam
$ns namtrace-all $f1

proc finish{} {
global ns f1
$ns flush-trace
#close $tracefile1
close $f1
exec nam out.nam &
exit 0
}


set n1 [$ns node] # 3 nodes defined
set n2 [$ns node]
set n3 [$ns node]

set duplex-link $n1 $n2 10mb 10ms Droptail
set duplex-link $n2 $n3 10mb 10ms DropTail
set duplex-link $n3 $n1 10mb 10ms DropTail

set udp1 [new Agent/UDP] #UDP agent attached to node n1
$ns attach-agent $n1 $udp1

set cbr1 [new Application/traffic/CBR]
$cbr1 set packetSize_ 500
$cbr1 set interval_ 0.005
$ns attach-agent cbr1 udp1

set null1 [new Aggent/Null]
$ns attach-agent $n2 $null1


$ns connect $udp1 $null1

$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"


$ns at 12.0 "finish"

$ns run



ERROR:wrong # args: should be "set varName ?newValue?"
while executing
"set f1 [open out.nam w] #open nam file out.nam"
(file "11.tcl" line 19)

Awk File For Vertical Handover Based On Mih

Hello ,
Can anyone help me to get the awk file for Vertical handover between Wlan and 3g based on mih

Thanks in advance

Script While Loop

Hello,
I'm working on a shell script that needs to read the a file (file1) a batch (read 2000 lines at a time) and then write those lines to seperate file which I'm using to run ldapmodify command. I need to check some other file size and once this file less than 200kb, i would need to run second batch and so on until file1 is empty.
Quote:
#!/bin/bash
set -x
filesize=200
server=10.11.xxx.xx
filename=fileimport.txt
taofile1=687686.txt
taofile=/var/opt/$taofile1

stty -echo
echo -n "Enter password: "
read passwd
stty echo
context="cn=user1,ou=org1,ou=org2,o=org"
if [[ -s "$filename" ]];then
for lines in $filename
do
head -99997 fileimport.txt >> ldapreadd.ldif && sed -i '1,+99996d' fileimport.txt
if [ -s ldapreadd.ldif ];then
ldapmodify -h $server -p 389 -D $context -w $passwd -v -x -f ldapreadd.ldif &> /dev/null
echo "LDIF script is running. Please wait..."
sleep 60
if [ -f "$taofile" ];then
taofilesize=`stat -c %s ${taofile}`
# if [ "$taofilesize" -ge 200 ];then
while [ `stat -c %s ${taofile}` -ge 200 ]
do
echo " Driver is processing LDIF file. Please wait..."
sleep 60
done
fi
rm -rf ldapreadd.ldif
fi
done
else
echo "$filename file is empty. Exiting script..."
exit
fi

I have 2 issues here. first one script is not reading exact lines as specified. Some times its reading more lines some times less lines. Second issues once it run the first batch, script is exiting. Please advise.

Best Way To Run Two Interdependent Scripts

Hi All,

I have two scripts, the aim of these two scripts is, to check whether a particular script is running or not, if it wont runs, then throw a mail.

How i Achieved this output is, I wrote first script.

I created an infinite while loop which performs below steps

1. It creates a touch file
2. Triggers the script which needs to be monitored if its working or not.
3. Removes the touch file.

If the second step fails, then the remove file command will not happen and the script will stuck there itself.

I created an another script which checks the creation time of the touch file and if it is more than ten minutes, it means the second step in the first script is hanged, which also means that particular script is not working.

So if the creation time is more than 2 minutes the second script will throw a mail.

Below are the two scripts.

Code:
#!/bin/ksh



userid="chansd"

filename="/apps/log/check.txt"

while true ;do
touch $filename
pass=`/apps/eDMZ/call_st.ksh $userid`
sleep 20
rm $filename
done

Below script checks the file creation time and throws email if it is older than 2 minutes
Code:
#!/bin/ksh


filename="/apps/log/check.txt"

if [ -f "${filename}" ]
then
if test "`find $filename -mmin +2`"
then
echo "script is not working ! Please act on it" | mail -s "Script  is not working" Example@mail.com
fi


else

        exit 1

fi


What im going to do is

1. I am going to run the first script in background so it runs forever.
2. I am going to run the second script in cron forevry 5 mins to check the file creation time.

3. So if the first script hangs . I will kill the process using process id and after the issue resolves with the inner script, I will run the main script again.

I am new to Linux, Please let me know if this approach will work as expected.