Elokerestem a Linux bevetes kozben cimu konyvet (anno megvettem, de sose volt idom, max. belenezni) es rabukkantam egy csodas kis proggira (#59), Hogyan jelenitsuk meg a Load Average-t a parancsbekero sorban. Legjobbkor, az egyik szerveren teljesen kulonbozo idopontokban fut el a LA, de hogy mysql vagy apache a gond, passz. Az azert jo lenne, ha top futtatasa nelkul, a promptban latnam az LA-t. A proggi:
#! /usr/bin/perl -w
use strict;
$|++;
my $host=`/bin/hostname`;
chomp $host;
while(1) {
open(LOAD, "/proc/loadavg") || die "Nem tudom megnyitni a /proc/loadavg: $!\n";
my @load=split(/ /,);
close(LOAD);
print "\ 033]0;";
print "$host: $load[0] $load[1] $load[2] at ", scalar (localtime);
print "\ 007";
sleep 2
}
A 3. sorban nem vagyok biztos, nekem pipe-nak tunt, de lehet, hogy hulyeseget irtam, nem ismerem perlt. A harom print sor kozul az elso es a harmadik csinalna (gondolom), hogy mindig "felulirja" az elozo kiirast. Sajnos, nem ezt teszi. Szepen sorban kiir mindent egymas utan. A kimenet ilyen lesz:
033]0;simplecdd: 0.00 0.00 0.00 at Fri Feb 8 10:26:52 2008 007 033]0;simplecdd: 0.00
0.00 0.00 at Fri Feb 8 10:26:54 2008 007 033]0;simplecdd: 0.00 0.00 0.00 at Fri Feb 8
10:26:56 2008 007 033]0;simplecdd: 0.00 0.00 0.00 at Fri Feb 8 10:26:58 2008 007
(Sortores nelkul, persze)
Masik gondom ezutan, hogy nem tudom hatterben futtatni, szoval a
./proggi &
nem mukszik, semmit nem ir, ha fg-vel elohozom, akkor fut. De akkor ugye ugyanott vagyok, mintha a top futna a konzolon...
- 1410 megtekintés
Hozzászólások
sysstat miert nem jo?
man sar
t
- A hozzászóláshoz be kell jelentkezni
Mert nem ismertem. De mindjart megnezem. Koszi.
- A hozzászóláshoz be kell jelentkezni
> print "\ 033]0;";
Szóközt töröld ki.
- A hozzászóláshoz be kell jelentkezni
Sajna ugyanaz.
Ha a hetes elol torlom, akkor beep. Szoval a 7-es ASCII kod. Akkor a 33-as meg a backspace lenne, ha mukodne...
- A hozzászóláshoz be kell jelentkezni
> Akkor a 33-as meg a backspace lenne, ha mukodne...
\033 ESCape.
> print "\033]0;";
http://tldp.org/HOWTO/text/Xterm-Title
3.1. xterm escape sequences
Window and icon titles may be changed in a running xterm by using
XTerm escape sequences. The following sequences are useful in this
respect:
· ESC]0;stringBEL -- Set icon name and window title to string
· ESC]1;stringBEL -- Set icon name to string
· ESC]2;stringBEL -- Set window title to string
where ESC is the escape character (\033), and BEL is the bell
character (\007).
- A hozzászóláshoz be kell jelentkezni
Koszi, kozben en is utananeztem. Szoval annyira sikerult kijavitanom
print "\r" ez a kocsi-vissza. Igy egesz kellemes, tenyleg midig felulrija
az eredeti allapotot. A hibaja, hogy hatterben nem fut (& nem mukszik,
bg nem megy, csak fg), igy meg nem tudok gepelni utana...
Viszont a lenti megoldas nagyon tetszik (egyre jobban :) , igaz, hogy csak
akkor irja ki, ha nyomok egy entert, de ezt eleg gyakran teszem :)
- A hozzászóláshoz be kell jelentkezni
Ez ugyen nem perl, hanem bash, de mukodik.
~/.bashrc-be:
PS1=$'\A \u at \e[1m\h\e[0m load: $(cut -d " " -f1-3 /proc/loadavg)\n$(dirs) \$ '
export PS1
- A hozzászóláshoz be kell jelentkezni
Koszi, tenyleg mukodik. Az egyetlen hibaja, hogy csak akkor irja az erteket, ha beirok valamit (es entert utok). Najo, ures enterre is :)
Az elozo megoldas viszont (ha jol ertem), folyamatosan irna....
- A hozzászóláshoz be kell jelentkezni
OMFG
- A hozzászóláshoz be kell jelentkezni
Mit segithetek?
- A hozzászóláshoz be kell jelentkezni
Szerintem arra gondolt, hogy minden egyes prompt megjelenitesehez indit a rencer egy komplett perl-t.
Miert nem rogton javavm-et inditasz promptbol? Az sokkal viccesebb lenne. :)
- A hozzászóláshoz be kell jelentkezni
Aha, ertem. Talan azert ilyen, mert nem ertek perlhez es ugy masoltam egy konyvbol, feltetelezve, hogy talan nem sikhulyeknek irodott a konyv. Belegondolva, igazad lehet, bar nem tudom, mennyi a perl inditasi ideje. (Egyebkent, ha futna, akkor a hatterben, szoval lehet, hogy itt cseszem el, folyamatosan futnia kellene a cuccnak es nem teszi)
- A hozzászóláshoz be kell jelentkezni