Another couple of notes about the use of a temporary file.
First off, if you will never use the first few lines of the temp file, might as well throw them away already at the start.
Secondly, when you are done, you should remove your temporary file. Better yet, remove it even if you are interrupted.
Put those lines near the beginning of the script.
Properly speaking, you should probably use something like mktemp to generate a unique, unpredictable temporary file name. There are security issues with using predictable names, and having a static file name means you can't run two instances of the script at the same time.
[QUOTE=era;302221664]Another couple of notes about the use of a temporary file.
First off, if you will never use the first few lines of the temp file, might as well throw them away already at the start.
[quote]
i will use those lines to have the iddle% and the amount of memory
Quote:
Originally Posted by era
Secondly, when you are done, you should remove your temporary file. Better yet, remove it even if you are interrupted.
Put those lines near the beginning of the script.
Properly speaking, you should probably use something like mktemp to generate a unique, unpredictable temporary file name. There are security issues with using predictable names, and having a static file name means you can't run two instances of the script at the same time.
its by design.
about the security risk, i decided that beeing my personal laptop, always in a secure network, and only the contents of top, that is not thread enough to consider some extra precausions
also, my /tmp is wiped out on poweroff and poweron
the script needs X to run, and the script is run by my user config files (fluxbox startup), so there wont be any other instance.
but deniying the posibilitie is a bad idea.
maybe using $$ in some part of the file can do the trick
and adding the trap to make sure i dont left behind tons of temporal files.
I haven't finished the mem part but it's not too complex; you should be able to implement the remaining part of the awk script and sort and pick the output lines you want by searching the forums a bit. The mawk manual page has an example of how to implement a simple sort in awk.
My top prints "Mem: total used free buffers" followed by "Swap: total used free cached" on lines 4 and 5; I'm not entirely sure which of the "free" and "total" fields you want, but extracting the fields you want (provided you are sure which ones you want) should be similarly straightforward. I've put in placeholders for those. A complication is that the output has a human-readable suffix like "k" which I imagine might vary, so properly you should parse that before doing the math on the resulting numbers.
I haven't finished the mem part but it's not too complex; you should be able to implement the remaining part of the awk script and sort and pick the output lines you want by searching the forums a bit. The mawk manual page has an example of how to implement a simple sort in awk.
My top prints "Mem: total used free buffers" followed by "Swap: total used free cached" on lines 4 and 5; I'm not entirely sure which of the "free" and "total" fields you want, but extracting the fields you want (provided you are sure which ones you want) should be similarly straightforward. I've put in placeholders for those. A complication is that the output has a human-readable suffix like "k" which I imagine might vary, so properly you should parse that before doing the math on the resulting numbers.
yeah, this thing is growing faster than my speed to read awk info :P
i will look at that and run some tests
the problem, is that all this work only o get a simple percentage of free mem, is growing in complexity and footprint
to a point where i dont know if its worth the problem
maybe i can make use of an external program to give me that info.
maybe doit myself in C? .... (actually, stole the related code of wmmem )
A single awk script is probably way more efficient than the multiple awks and sorts and echos and what not you had before, that's why I'm proposing it.
If you can fork the code from top to give you exactly the output you want, it will of course be more efficient still, but IMHO probably not worth the programmer effort.
Maybe if you could add a module to top to produce XML or CSV or something else more machine-readable, that could perhaps be worth it.
A single awk script is probably way more efficient than the multiple awks and sorts and echos and what not you had before, that's why I'm proposing it.
If you can fork the code from top to give you exactly the output you want, it will of course be more efficient still, but IMHO probably not worth the programmer effort.
Maybe if you could add a module to top to produce XML or CSV or something else more machine-readable, that could perhaps be worth it.
i see that using a single awk would be faster, but im still working to uderstand how to doit.
eventually i hope my script is a while loop (needed only for dzen) and an awk calling a script file with the -f parameter.
and what you mean by "if you could add a module to top"
I do not know shell scripting. But at work place, I have got an in and out shell scripting task. I just need to understand a very big script. Is there any tool in which I can place the script and it can tell me the meaning of the whole script? (3 Replies)
Hi folks,
I'm a CS students enrolled in a sysadmin class where we've been covering bash scripting for the past few weeks. I have prior knowledge in java, c++, c#, python,and some scripting languages like asp.net w/c# and php. This bash stuff seems pretty neat and a bit different than what I am... (9 Replies)
Hi all,
Is it possible to get total memory usage and free memory usage without top? By Googling I found for total memory usage, use vmstat, for CPU, use mpstat, for disk I/O use iostat, is this correct? Will using sar gives the same result as ALL of these three (3) commands?
What about if I... (2 Replies)
I'm writing a bash script to log some selections from a sensors output (core temp, mb temp, etc.) and I would also like to have the current cpu usage as a percentage. I have no idea how to go about getting it in a form that a bash script can use. For example, I would simply look in the output of... (3 Replies)
how can I find cpu usage memory usage swap usage and
I want to know CPU usage above X% and contiue Y times and memory usage above X % and contiue Y times
my final destination is monitor process
logical volume usage above X % and number of Logical voluage above
can I not to... (3 Replies)
What is amount of free RAM i have now?
total used free shared buffers cached
Mem: 1010 963 46 0 215 256
-/+ buffers/cache: 491 518
Swap: 1983 0 1983
Above is the output of... (1 Reply)
Hi All,
Kindly help me in optimizing the server as it displays a great amount of CPU & MEM being utilised when the mysql process executes.
Below are the stats ---
--------------------------------------------------------------------------
# top
15:51:57 up 23:22, 5 users, load average:... (1 Reply)
Hi All,
I have a pair of sun ultra 5_10 with SunOS 5.5.1.
Both are almost equally patched and set up with simillar applications.
host# uname -a
SunOS host 5.5.1 Generic_103640-24 sun4u sparc SUNW,Ultra-5_10
Even though both have
same amount of RAM ( 512 Mb ) ,
... (1 Reply)