Sponsored Content
Operating Systems Linux Gentoo cpu%/mem% usage, scripting, dzen2: howto learn bash the hard way Post 302221136 by era on Sunday 3rd of August 2008 01:54:57 PM
Old 08-03-2008
For a small piece of code like that, I'm taking the liberty to quote

Quote:
Code:
#!/bin/bash

while [ 1 -eq 1 ]

The idiomatic way to code an endless loop is simply while true although you also see the obscure while : which avoids an external process (even though true is often a shell built-in in modern shells).

Quote:
Code:
do
	top -b -n 1 > /tmp/salidatop
	
	#primero cpu
	echo -n "^fg(green)CPU **"
	tail -n +8 /tmp/salidatop | sort -r -n -k9 | head -n 5 | while read line
	do 
		echo "$line" | awk ' { print "[^fg(cyan)",$12,"(^fg(red)",$9,"^fg(green)]--" } ' | tr -d ' ' | tr -d '\n'	 
	done

Is there a reason to feed awk a line at a time? Why not just

Code:
tail -n +8 /tmp/salidatop | sort -r -n -k9 | head -n 5 |
awk ' { printf "[^fg(cyan)",$12,"(^fg(red)",$9,"^fg(green)]--" } '

I don't see any spaces in the output, so tr -d ' ' seems superfluous. By using printf instead of print, there will be no trailing newline. As an aside, you could have combined the two tr:s to one: tr -d ' \n'

The same change could be applied below:

Quote:
Code:
	echo ">>"
	echo -n "^fg(green)MEM **"
	#segundo mem
	tail -n +8 /tmp/salidatop | sort -r -n -k10 | head -n 5 | while read line
	do 
		echo "$line" | awk ' { print "[^fg(cyan)",$12,"(^fg(red)",$10,"^fg(green)]--" } ' | tr -d ' ' | tr -d '\n'	 
	done

	echo ">>"
	
	sleep 5

done | dzen2 -ta l -u -l 1 -x 20 -y 710 -w 660 -e 'onstart=lower,uncollapse'

I don't understand the question about CPU percentage. You can add the user, system, and nice percentages, or just subtract the idle percentage from 100% as you note.

If you can replace the complex tail | head etc with a simple sed or awk script, that will probably help reduce the resource requirements. Perhaps you could pass some option to top to order the output like you want it, so you can avoid the separate sort -- that's probably the main bottleneck here (albeit a very minor one, with so little input).
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Difference in Mem usage ?

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)
Discussion started by: shibz
1 Replies

2. Linux

High Mem & Cpu Utilisation

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)
Discussion started by: gautamatul82
1 Replies

3. Linux

Linux Mem Usage

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)
Discussion started by: new2ss
1 Replies

4. HP-UX

how can I find cpu usage memory usage swap usage and logical volume usage

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)
Discussion started by: alert0919
3 Replies

5. AIX

How to monitor the IBM AIX server for I/O usage,memory usage,CPU usage,network..?

How to monitor the IBM AIX server for I/O usage, memory usage, CPU usage, network usage, storage usage? (3 Replies)
Discussion started by: laknar
3 Replies

6. Shell Programming and Scripting

Help with bash script - Need to get CPU usage as a percentage

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)
Discussion started by: graysky
3 Replies

7. UNIX for Dummies Questions & Answers

HOWTO - Total memory and CPU usage ... without top?

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)
Discussion started by: newbie_01
2 Replies

8. Shell Programming and Scripting

Should I learn bash scripting or is it going obsolete?

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)
Discussion started by: KalEl
9 Replies

9. Shell Programming and Scripting

Command to find total cpu and mem

Hi All, I need to know the command for knowing the total cpu and mem. Thanks (5 Replies)
Discussion started by: aish11
5 Replies

10. UNIX for Dummies Questions & Answers

Learn bash shell scripting

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)
Discussion started by: lg123
3 Replies
Convert::Color(3pm)					User Contributed Perl Documentation				       Convert::Color(3pm)

NAME
"Convert::Color" - color space conversions and named lookups SYNOPSIS
use Convert::Color; my $color = Convert::Color->new( 'hsv:76,0.43,0.89' ); my ( $red, $green, $blue ) = $color->rgb; # GTK uses 16-bit values my $gtk_col = Gtk2::Gdk::Color->new( $color->as_rgb16->rgb16 ); # HTML uses #rrggbb in hex my $html = '<td bgcolor="#' . $color->as_rgb8->hex . '">'; DESCRIPTION
This module provides conversions between commonly used ways to express colors. It provides conversions between color spaces such as RGB and HSV, and it provides ways to look up colors by a name. This class provides a base for subclasses which represent particular color values in particular spaces. The base class provides methods to represent the color in a few convenient forms, though subclasses may provide more specific details for the space in question. For more detail, read the documentation on these classes; namely: o Convert::Color::RGB - red/green/blue as floats between 0 and 1 o Convert::Color::RGB8 - red/green/blue as 8-bit integers o Convert::Color::RGB16 - red/green/blue as 16-bit integers o Convert::Color::HSV - hue/saturation/value o Convert::Color::HSL - hue/saturation/lightness o Convert::Color::CMY - cyan/magenta/yellow o Convert::Color::CMYK - cyan/magenta/yellow/key (blackness) The following classes are subclasses of one of the above, which provide a way to access predefined colors by names: o Convert::Color::VGA - named lookup for the basic VGA colors o Convert::Color::X11 - named lookup of colors from X11's rgb.txt CONSTRUCTOR
$color = Convert::Color->new( STRING ) Return a new value to represent the color specified by the string. This string should be prefixed by the name of the color space to which it applies. For example rgb:RED,GREEN,BLUE rgb8:RRGGBB rgb16:RRRRGGGGBBBB hsv:HUE,SAT,VAL hsl:HUE,SAT,LUM cmy:CYAN,MAGENTA,YELLOW cmyk:CYAN,MAGENTA,YELLOW,KEY vga:NAME vga:INDEX x11:NAME For more detail, see the constructor of the color space subclass in question. METHODS
( $red, $green, $blue ) = $color->rgb Returns the individual red, green and blue color components of the color value. For RGB values, this is done directly. For values in other spaces, this is done by first converting them to an RGB value using their "to_rgb()" method. COLOR SPACE CONVERSIONS
Cross-conversion between color spaces is provided by the "convert_to()" method, assisted by helper methods in the two color space classes involved. When converting $color from color space SRC to color space DEST, the following operations are attemped, in this order. SRC and DEST refer to the names of the color spaces, e.g. "rgb". 1. If SRC and DEST are equal, return $color as it stands. 2. If the SRC space's class provides a "convert_to_DEST" method, use it. 3. If the DEST space's class provides a "new_from_SRC" constructor, call it and pass $color. 4. If the DEST space's class provides a "new_rgb" constructor, convert $color to red/green/blue components then call it. 5. If none of these operations worked, then throw an exception. These functions may be called in the following ways: $other = $color->convert_to_DEST() $other = Dest::Class->new_from_SRC( $color ) $other = Dest::Class->new_rgb( $color->rgb ) $other = $color->convert_to( $space ) Attempt to convert the color into its representation in the given space. See above for the various ways this may be achieved. If the relevant subclass has already been loaded (either explicitly, or implicitly by either the "new" or "convert_to" methods), then a specific conversion method will be installed in the class. $other = $color->as_$space Methods of this form are currently "AUTOLOAD"ed if they do not yet exist, but this feature should not be relied upon - see below. AUTOLOADED CONVERSION METHODS
This class provides "AUTOLOAD" and "can" behaviour which automatically constructs conversion methods. The following method calls are identical: $color->convert_to('rgb') $color->as_rgb The generated method will be stored in the package, so that future calls will not have the AUTOLOAD overhead. This feature is deprecated and should not be relied upon, due to the delicate nature of "AUTOLOAD". OTHER METHODS
As well as the above, it is likely the subclass will provide accessors to directly obtain the components of its representation in the specific space. For more detail, see the documentation for the specific subclass in question. SUBCLASS METHODS
This base class is intended to be subclassed to provide more color spaces. $class->register_color_space( $space ) A subclass should call this method to register itself as a named color space. $class->register_palette( %args ) A subclass that provides a fixed set of color values should call this method, to set up automatic conversions that look for the closest match within the set. This conversion process is controlled by the %args: enumerate => STRING or CODE A method name or anonymous CODE reference which will be used to generate the list of color values. enumerate_once => STRING or CODE As per "enumerate", but will be called only once and the results cached. This conversion process only finds the closest match in RGB space, so it may not give exact results. In the case of a tie, where two or more colors have the same distance from the target, the first one will be chosen. AUTHOR
Paul Evans <leonerd@leonerd.org.uk> perl v5.12.3 2011-06-15 Convert::Color(3pm)
All times are GMT -4. The time now is 04:16 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy