This script does exactly what I need, it just doesn't seem as efficient as it could be.
As you can see, it runs through the loop, which runs through the if then else for every file found matching nohup*.out, which can be up to 30 or so, but usually only 1 or two files will match the requirement to actually go through the if statement. Is there a way I can change this to a while loop to where it will only run through on the ones that are greater than 5000?
The two pwd's were just for while I was testing it, I have since deleted those two pwd commands.
---------- Post updated at 01:00 PM ---------- Previous update was at 12:44 PM ----------
Something else I just noticed. I admin quite a few different servers, and one of them had a log file that was like 100mb, so b/c of that it threw off my cut line. Is there a better and more dynamic way to use that, rather than giving it a static line of 6-100. Now, it's not a huge issue b/c I have this set to run by crontab every half-hour, so I doubt in that half hour I'll have a log that grows so much that it'll get past that digit and cause an issue, but in the initial running of the script on new servers, I have to modify it accordingly to the biggest log file on those servers.
Looks a lot more efficient, can you see my updated comment in the original post about the cut piece.
Also, I'd need to modify yours just a bit to cd to ${curDir} first, b/c whoever wrote the rotate script wrote it in a relative manner, so I have to be in that dir to run it. As for the curFile, yeah, again, that was a var I used in some of my test runs to make sure I was finding the correct file.
If you need to start at pos 6 then go on to the end of the line change the awk to
is that what you mean?
What I'm wondering is there a way to make it more dynamic, that way, say a log file decides to start growing like crazy at 01, and my crontab just ran, but won't run again for 29 minutes. If it grows enough to where the size field will be longer than the 4 characters it is now, the variable set by the ls command will be off, either it will have an extra space or it will have a number in it, causing the basename/dirname command to fail.
here's the example of when the script was ran and the size was too many digits:
As you can see the size of the log file had too many characters and screwed up the dirname/basename command:
I tried using a '.' as the delimiter, but that screws it up b/c then it delimit's the .out as well, so it doesn't pick up the entire filename.
---------- Post updated at 01:25 PM ---------- Previous update was at 01:18 PM ----------
Played with it a bit more, I think I got the dynamic part down:
I cahnged the cut line to do it by period, but then for curFile and curDir I just added the period in front of and the .out behind the variable and the dirname and basename command's ran fine. I had to change it to 1000 for the size, rather than the 5000, that way I'd get some results.
Now, this one ran even a bit slower than before, but that is probably b/c I had like 6 results instead of just 1 or 2.
Anyone got anything on this. I got my script working exactly the way it should, but I'd like to be able to use a while loop or something else so it doesn't run so long.
Hi all,
i developed a script to measure the uptime of a process in a Solaris 10/11 environments.
All is well, but i came across a situation where there are multiple processes of the same name. Basically i have the following result file:
beVWARS 13357 19592122
beVWARS 14329 19591910... (4 Replies)
Hi,
I want to read file multiple times. Right now i am using while loop but that is not working.
ex.
While read line
do
while read line2
do
echo stmt1
#processing some data based on data.,
done < file2.txt
done < file1.txt # This will have 10... (4 Replies)
Hello All,
Maybe I'm Missing something here but I have NOOO idea what the heck is going on with this....?
I have a Variable that contains a PATTERN of what I'm considering "Illegal Characters". So what I'm doing is looping
through a string containing some of these "Illegal Characters". Now... (5 Replies)
Hi all,
i got 2 text file.
file.txt
value.txt
i want use C shell script to write out
while both of the file got different limit....how i going to write it in 1 while loop? (4 Replies)
Hi all
Sorry for the basic question, but i am writing a shell script to get around a slightly flaky binary that ships with one of our servers. This particular utility randomly generates the correct information and could work first time or may work on the 12th or 100th attempt etc !.... (4 Replies)
Hi Im running this script, which is supposed to find the max value build some tables and then stop running once all the tables are built. Thing is , it keeps assigning a null value to $h and then $g is null so it keep building tables i.e. testupdateNUL. How can I stop this? Here is what I have:
... (4 Replies)
I'm trying to understand if it's possible to create a set of variables that are numbered based on another variable (using eval) in a loop, and then call on it before the loop ends.
As an example I've written a script called question (The fist command is to show what is the contents of the... (2 Replies)
Sorry for such a dreadful title, but I'm not sure how to be more descriptive. I'm hoping some of the more gurutastic out there can take a look at a solution I came up with to a problem, and advice if there are better ways to have gone about it.
To make a long story short around 20K pieces of... (2 Replies)
Dear all
How to write the shell script for the following statement:
(C programming)
for (i=0;i<30;i++) {
if i=1
continue *skip this number
(To do function here....)
...
}
similar statement in while loop....
I wrote the script in sh... (3 Replies)