Help it works but its to SLOW


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help it works but its to SLOW
# 8  
Old 04-01-2008
How about keep a count and sleep for a while if the count is exactly a multiple of 100? Or even, wait for all the processes you have spawned so far.

Also have a look at the nice and (if you have it) ionice commands. Those can be used to tell the scheduler to give other processes priority over this one, but if there are none others competing for resources, still let you run at full speed.

As an aside, as always, anything involving the cat of a single file is usually better phrased with redirection.

Code:
while read device
do
  .... stuff
done <devices.txt

# 9  
Old 04-01-2008
Thank you for the reply. Hopefully with practice I won't have to ask such basic questions.

The thought I have in my head is a count

I have been playing with different ones i have found online and I can't get them to work. I am sure it is me that is the problem.

The only purpose of the first script file is to cat the file device.txt and store the variable $device then export that to the second script file i call as a back ground process.

What I am hoping for but cannot get the syntax correct is

as the first script launches background processes it starts a count of how many it has started. Once it reaches 100 it either waits for all background processes to finish (preferable) then continues on. OR

it sleeps for 120 seconds before firing off the next hundred.


As for the cat the output redirect is inside the script that is called

named devicev2

ip=`(host $device | awk ' /has/ {print $4}')`

if [ "$ip" ]
then
dns="$ip"


answer=`(ping -c 1 -q -w 2 -n $device 2>/dev/null | grep received | awk '{print $4}')`
if
[ $answer = 0 ];
then answer="NO"
else answer="YES"
fi


if
[ $answer = "YES" ];
then

routername=`(snmpget -t 2 -r 0 -Oqv -Os -v 2c -c (Read only community string) $device 2>/dev/null SNMPv2-MIB::sysName.0)`
if [ "$routername" = "" ];
then snmpread="NO"
routername="N/A"
else snmpread="YES"
fi
snmpwrite=`(snmpget -t 2 -r 0 -Oqv -Os -v 2c -c (Read Write community string) $device 2>/dev/null SNMPv2-MIB::sysName.0)`
if [ "$snmpwrite" = "" ];
then snmpwrite="NO"
else snmpwrite="YES"
fi

if [ "$snmpwrite" = "YES" ];
then
devicenumber=`(snmpwalk -v 2c -OQs -c (Read Write community string) $device 1.3.6.1.2.1.4.20.1.2 | grep $ip | awk ' /=/ {print $3}')`
interface=`(snmpwalk -v 2c -OQs -c (Read Write community string) $device 1.3.6.1.2.1.2.2.1.2 | grep -w ifDescr.$devicenumber | awk '/=/ {print $3}')`
else
interface="N/A"
fi

echo "$device,$routername,$dns,$answer,$snmpread,$snmpwrite,$interface" >> device.log
echo "$device,$routername,$dns,$answer,$snmpread,$snmpwrite,$interface"

else
snmpread="NO"
snmpwrite="NO"
interface="N/A"
routername="N/A"
echo "$device,$routername,$dns,$answer,$snmpread,$snmpwrite,$interface" >> device.log
echo "$device,$routername,$dns,$answer,$snmpread,$snmpwrite,$interface"

fi

else
dns="Not in DNS"
answer="NO"
snmpread="NO"
snmpwrite="NO"
interface="N/A"
routername="N/A"
echo "$device,$routername,$dns,$answer,$snmpread,$snmpwrite,$interface" >> device.log
echo "$device,$routername,$dns,$answer,$snmpread,$snmpwrite,$interface"

fi

exit
# 10  
Old 04-01-2008
Missed what you were saying

Sorry Era,

I missed what you were saying about the redirection.
I was thinking output you were talking about removing cat all together and redirecting the input to read from the file.

That is something that will change along with the redundant echo statements. I will work on making it stylish once I get it working to my liking. I do have access to the nice command and I will play with that. I am wanting to throttle it with a count though. This is a remote box, and getting someone in Arizona to reboot it if I crash it can be time consuming. This box has our regular monitoring tools on it as well. I want to be very sure I am not draining the resources away from things that are vital.
# 11  
Old 04-03-2008
The shell is not very good at arithmetic, so for small numbers, I prefer working with just a string -- grow the string by one character in the loop, and once the string is x characters long, quit. But here, obviously, the number is large enough that the traditional way of doing this is better.

Code:
n=0
while whatever; do
  n=`expr 1 + $n`
  case $n in *00) wait;; esac
  ... go on
done

Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

How this works?

I have a program............ #include<stdio.h> #include<unistd.h> main() { if(fork == 0) { printf("Hi every body:p!!!!!!!!!!"); } } This program works with out any error. here fork is not a system call. It just act as a variable.But how it works without declaring it? What data type it... (19 Replies)
Discussion started by: carolsanjeevi
19 Replies

2. UNIX for Dummies Questions & Answers

>./a.pl works, >a.pl - does not

When I try to execute script, I get message: >aa.pl zsh: command not found: aa.pl but >./aa.pl works OK. What to change in environment to force the former way to work? Thank you, Alex Z (4 Replies)
Discussion started by: zzol
4 Replies

3. Programming

how this works?

pls explain me how this works.... DECODE (SUBSTR (field, 1, 1),'''', '''''' || field || '''','''' || field || '''') here field is a column in an oracle table.... (7 Replies)
Discussion started by: vijay_0209
7 Replies

4. UNIX for Dummies Questions & Answers

How ls | wc -l works?

ls displays files in tabbed output. Say a directory contains 3 files. ls will list all 3 in one line. So, I expect ls | wc -l to give 1, but it counts the nr of files and gives 3. Can someone explain how this works? (3 Replies)
Discussion started by: krishmaths
3 Replies

5. UNIX for Dummies Questions & Answers

scp is slow

All of the sudden scp got really slow ... from 2-3 seconds to 30 seconds. This happened for 5 hours, and then it went back to running fast. Why? If I use the -q qualifier which "Disables the progress meter" could this have any adverse effect? Thanks (1 Reply)
Discussion started by: tomstone_98
1 Replies

6. SCO

Slow cd response

Hi All We have one SCO Server here and it never gives us any trouble. Until Now!! Well its not earth shattering but we have one user who is complaining of a very slow response time when changing to his Home Directory. Other users who have similar profiles are OK. I have su'd to this user and I can... (0 Replies)
Discussion started by: JohnOB
0 Replies

7. Post Here to Contact Site Administrators and Moderators

Slow

The site has gone slow for quite some time... Can you do somethin abt it (2 Replies)
Discussion started by: DPAI
2 Replies

8. UNIX for Dummies Questions & Answers

slow ftp

On one of of solaris 7 boxes whenever i telnet or ftp it takes sometime before i get the prompt...any quick ideas where I should look...Thanks (3 Replies)
Discussion started by: suntan
3 Replies
Login or Register to Ask a Question