s0ulslack

yasis-3.2

Aug 20th, 2011
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 17.66 KB | None | 0 0
  1. #!/usr/bin/perl
  2. # System Information Script originally for X-Chat, by s0ulslack (Tony Annen)
  3. # Distributed under the terms of the GNU General Public License, v2 or later
  4. # $Header: ~/.xchat2/yasis.pl, v3.2 2008/10/16 012:42:00 $
  5.  
  6. # Having problems with lspci? make sure you have pciutils installed.
  7. # Also, if your running any kernel patches that increase security (like grsec)
  8. # it may break this script or report errors! (thanks to TMS)
  9. # Need help or wanna chat? /msg s0ulslack on Undernet or Freenode
  10.  
  11. # Click Settings -> Advanced -> User Commands...
  12. # Click Add New Twice, and edit it so the Names/Commands are like below
  13.  
  14. # Name                 Command
  15. # yasis                exec -o ~/.xchat2/yasis-3.2.pl %2
  16. # yasishelp            exec ~/.xchat2/yasis-3.2.pl -h
  17.  
  18. # Make sure the path is correct and Save
  19.  
  20. $sver="v3.2";
  21.  
  22. # Figure out (try to) where lspci is located
  23. if(-e "/usr/sbin/lspci"){
  24.   $lspci="/usr/sbin/lspci";
  25. }elsif(-e "/sbin/lspci"){
  26.   $lspci="/sbin/lspci";
  27. }elsif(-e "/bin/lspci"){
  28.   $lspci="/bin/lspci";
  29. }elsif(-e "/usr/bin/lspci"){
  30.   $lspci="/usr/bin/lspci";
  31. }
  32.  
  33. if(!$lspci){
  34.   system("echo pciutils is not installed or lspci wasn't found!");
  35.   system("echo check the top of the yasis file for more info.");
  36.   exit;
  37. }
  38.  
  39. if($ARGV[0]){
  40.     $switch=$ARGV[0];
  41. }
  42.  
  43. # CPU Load (only tested with one cpu)
  44. $cpu_load=`export TERM=dumb; top -b -d .1 -n2 | grep "Cpu(s)" | awk '{print \$2}' | tail -n1 | sed 's/%//'`; chop($cpu_load);
  45. $cpu_load=sprintf("%.0f",($cpu_load));
  46. $cpu_load="$cpu_load% load)";
  47.  
  48. # Kernel Version
  49. $uname=`uname -r`; chop($uname);
  50.  
  51. # CPU
  52. $cpu=cat("/proc/cpuinfo");
  53. if($cpu=~/sparc/){
  54.   $cpu=~ /(.*sparc.*)/;
  55.   @cpumodel=split/:/,$1;
  56.   $cpumodel=$cpumodel[1];
  57.   $cpumodel=~ s/ //;
  58.   $cpu=~ /(.*bogomips.*)/;
  59.   @cpumhz=split/:/,$1;
  60.   $cpumhz=sprintf ("%.f",$cpumhz[1]);
  61.   $cpuinf="$cpumodel";
  62. }elsif($cpu=~/ 486/){
  63.   $cpu=~ /(.*model name.*)/;
  64.   @cpumodel=split/:/,$1;
  65.   $cpumodel=$cpumodel[1];
  66.   $cpumodel=~ s/ //;
  67.   $cpu=~ /(.*bogomips.*)/;
  68.   @cpumhz=split/:/,$1;
  69.   $cpumhz=sprintf ("%.f",$cpumhz[1]);
  70.   $cpuinf="$cpumodel";
  71. }else{
  72.   $cpu=~ /(.*model name.*)/;
  73.   @cpumodel=split/:/,$1;
  74.   $cpumodel=$cpumodel[1];
  75.   $cpumodel=~ s/ //;
  76.   $cpu=~ /(.*cpu MHz.*)/;
  77.   @cpumhz=split/:/,$1;
  78.   $cpumhz=sprintf ("%.f",$cpumhz[1]);
  79.   $cpuinf="$cpumodel";
  80. }
  81.  
  82. $cpus=`grep 'processor' /proc/cpuinfo | wc -l | sed 's/ *//'`; chop($cpus);
  83. $cache=`grep 'cache size' /proc/cpuinfo | head -n 1 | sed -e 's/^.*: //'| sed 's/ //'`; chop($cache);
  84.  
  85. # CPU Temp (requires the "sensors" command to be in $PATH)
  86. if(-e "/usr/bin/sensors"){ $sensors="/usr/bin/sensors"; }
  87. if(-e "/bin/sensors"){ $sensors="/bin/sensors"; }
  88. if(-e "/usr/sbin/sensors"){ $sensors="/usr/sbin/sensors"; }
  89. if(-e "/sbin/sensors"){ $sensors="/sbin/sensors"; }
  90. if($sensors){
  91.   $cpu_tempc=`sensors | grep CPU | awk '{print \$3}' | sed 's/.*+//'`; chop($cpu_tempc);
  92.   $cpu_tempf=`sensors -f | grep CPU | awk '{print \$3}' | sed 's/.*+//'`; chop($cpu_tempf);
  93.   $cpu_rpm=`sensors | grep fan1 | awk '{print \$2,\$3}' | sed 's/.*+//'`; chop($cpu_rpm);
  94. }
  95.  
  96. # Memory
  97. $mem_total=`free | grep Mem | awk '{printf (\"%dMm\", \$2/1024 )}'`; chop($mem_total);
  98. $mem_free=`free | grep Mem | awk '{printf (\"%.0fMm\", ( \$3 -(\$6 + \$7) )/1024)}'`; chop($mem_free);
  99. $mem_per=`free -m | grep Mem | awk '{printf (\"%.0f\", (\$2 - \$3 + \$6 + \$7) * (100/ \$2))}'`;
  100. $buffered_mem=`free | grep Mem | awk '{printf (\"%.0fM\", (\$6)/1024)}'`;
  101. $cached_mem=`free | grep Mem | awk '{printf (\"%.0fM\", (\$7)/1024)}'`;
  102.  
  103. # Swap (try to handle this smoothly)
  104. $swapchk=`free -m | grep Swap | awk '{print \$2}'`;
  105. if($swapchk != 0){
  106.   $swap_total=`free | grep Swap | awk '{printf (\"%dMm\", \$2/1024 )}'`; chop($swap_total);
  107.   $swap_free=`free | grep Swap | awk '{printf (\"%.0fMm\", ( \$3 -(\$6 + \$7) )/1024)}'`; chop($swap_free);
  108.   $swap_per=`free -m | grep Swap | awk '{printf (\"%.0f\", (\$2 - \$3 + \$6 + \$7) * (100/ \$2))}'`;
  109. }
  110.  
  111. ## Video
  112. $xchk=`ps ax | grep "[x]init" | wc -l`;
  113. $gdmchk=`ps ax | grep "[g]dm-binary" | wc -l`;
  114. $gdmchk2=`ps ax | grep "[g]dm" | wc -l`;
  115. if($xchk > 0){
  116.   $idchk=`ps aux | grep "[x]init " | awk '{print \$1}'`; $me=`whoami`;
  117.   if($idchk eq $me){
  118.     $do_display="1";
  119.   }else{
  120. ##   NOTE: change this to "0" if root can't use xdpyinfo
  121. ##   to access other users X session stats... it'd be something
  122. ##   like "connection refused from 0:0" or along the lines
  123.     $do_display="0";
  124.   }
  125. }elsif($gdmchk > 0 && $xchk == "0"){
  126.   $do_display="1";
  127. }elsif($gdmchk2 > 0 && $xchk == "0" && $gdmchk =="0"){
  128.   $do_display="1";
  129. }else{
  130.   $do_display="0";
  131.   $con_display="1";
  132. }
  133.  
  134. if($do_display == "1"){
  135.   $vid_card=`$lspci | grep VGA | sed 's/Technologies Inc //' | sed -e 's/.*: //' | sed 's/ (.*//' | tail -n1`;
  136.   $vid_card=~ s/(.*)\[//; $vid_card=~ s/\]//; chop($vid_card);
  137.   if(-x "/usr/X11R6/bin/xdpyinfo"){ $xdpy="/usr/X11R6/bin/xdpyinfo"; }
  138.   if(-x "/usr/local/X11R6/bin/xdpyinfo"){ $xdpy="/usr/X11R6/bin/xdpyinfo"; }
  139.   if(-x "/usr/bin/xdpyinfo"){ $xdpy="/usr/bin/xdpyinfo"; }
  140.   if(-x "/usr/X11R6/bin/xrandr"){ $xrandr="/usr/X11R6/bin/xrandr"; }
  141.   if(-x "/usr/local/X11R6/bin/xrandr"){ $xrandr="/usr/local/X11R6/bin/xrandr"; }
  142.   if(-x "/usr/bin/xrandr"){ $xrandr="/usr/bin/xrandr"; }
  143.   if($xrandr){
  144.     $refrsh_rate = `$xrandr | grep "*" | awk '{print \$2}' | sed 's/\\..*//'`; chop($refrsh_rate);
  145.     if($refrsh_rate){ $refrsh_rate="/${refrsh_rate}Hz"; }
  146.   }
  147.   if($xdpy){
  148.     $screen_res=`$xdpy | grep dimensions | awk '{print \$2}'`; chop($screen_res);
  149.     $screen_depth=`$xdpy | grep "depth of root window" | awk '{print \$5}'`; chop($screen_depth);
  150.     # Get Xorg/Xfree version
  151.     if(!$x){ $x=`$xdpy | grep XFree86"."version | awk '{print \$3}'`; if($x ne ""){ $x="XFree86 $x"; }} chomp($x);
  152.     if(!$x){ $x=`$xdpy | grep X.Org"."version | awk '{print \$3}'`; if($x ne ""){ $x="X.Org $x"; }} chomp($x);
  153.   }
  154.  
  155. if(!$screen_res){ $screen_res="Unknown Res"; }
  156. if(!$screen_depth){ $screen_depth="Unknown"; }
  157. if(!$x){ $x="Unknown X-Server"; }
  158. if(!$refrsh_rate){ $refrsh_rate="/Unknown"; }
  159.  
  160. # Desktop Enviroment/Window Manager
  161. $xfchk=`ps ax | grep [x]fwm4 | wc -l`; if($xfchk > 0){ $de=`xfwm4 --version | grep version | awk '{print \$5}'`; { $de="Xfce $de"; }}
  162. $gchk=`ps ax | grep [g]nome-session | wc -l`; if($gchk > 0){ $de=`gnome-panel --version | sed 's/.*gnome-panel //'`; $de="Gnome $de"; }
  163. $kdechk=`ps ax | grep [s]tartkde | wc -l`; if($kdechk > 0){ $de=`kde-config --version | grep "KDE:" | sed 's/://'`; }
  164. $echk=`ps ax | grep [e]nlightenment | wc -l`; if($echk > 0){ $de=`enlightenment --version | grep Version | awk '{print \$1, \$3}'`; }
  165. $fluxchk=`ps ax | grep [f]luxbox | wc -l`; if($fluxchk > 0){ $de=`fluxbox -version | grep Fluxbox | sed 's/-.*//' | sed 's/ :.*//'`; }
  166. $bbchk=`ps ax | grep [b]lackbox | wc -l`; if($bbchk > 0){ $de=`blackbox --version | grep Blackbox | sed 's/ :.*//'`; }
  167. $obchk=`ps ax | grep [o]penbox | wc -l`; if($obchk > 0){ $de=`openbox --version | grep Openbox`; }
  168. $wmchk=`ps ax | grep [w]maker | wc -l`; if($wmchk > 0){ $de=`wmaker --version | grep "Window Maker"`; }
  169. if(!$de){ $de="Unknown Desktop"; }
  170.   chop($de);
  171. }else{
  172.   $vid_card=`$lspci | grep VGA | sed -e 's/.*: //' | sed 's/ (.*//' | tail -n1`;
  173.   $vid_card=~ s/(.*)\[//; $vid_card=~ s/\]//; chop($vid_card);
  174. }
  175.  
  176. # Hard Drive
  177. $hdspacet = `df | awk '{ if (substr(\$1,1,1) == "/") sum+=\$2/1024^2 }; END { printf (\"%.02fG\", sum )}'`;
  178. $hdspaceu = `df | awk '{ if (substr(\$1,1,1) == "/") sum+=\$3/1024^2 }; END { printf (\"%.02fG\", sum )}'`;
  179. $hdspacef = `df | awk '{ if (substr(\$1,1,1) == "/") sum+=\$4/1024^2 }; END { printf (\"%.02fG\", sum )}'`;
  180. $hdpercent = sprintf("%.0f",(100/${hdspacet}*${hdspacef}));
  181.  
  182. # Network (default and others)
  183. $tmp="/tmp/.rinfo";
  184. system(`/sbin/route -n > $tmp`);
  185. open(ROUTE, "$tmp") or die;
  186. @rinfo=<ROUTE>;
  187. close(ROUTE) or die;
  188. foreach $line (@rinfo){
  189.   if($line=~/0.0.0.0/){
  190.     ($dest, $gate, $mask, $flags, $metric, $ref, $use, $face)=split(/\s+/, $line, 8);
  191.     chop($dest, $gate, $mask, $flags, $metric, $ref, $use, $face);
  192.   }
  193.   if($line=~/192.168/ or $line=~/10./){
  194.     ($dest1, $gate1, $mask1, $flags1, $metric1, $ref1, $use1, $face1)=split(/\s+/, $line, 8);
  195.     chop($dest1, $gate1, $mask1, $flags1, $metric1, $ref1, $use1, $face1);
  196.   }
  197. }
  198.  
  199. system(`rm -rf $tmp`);
  200. if($face1 eq "$face"){ $face1=""; }
  201. $ppp=`$lspci | grep Communication | sed 's/.*: //' | sed 's/ (.*//' | tail -n1`; chop($ppp);
  202. $eth=`$lspci | grep Ethernet | sed 's/.*: //' | sed 's/ (.*//' | tail -n1 | sed 's/Corporation //'`; chop($eth);
  203. if($face eq "ppp0"){ $eth_name=$ppp; $inet="ppp0"; }elsif($face eq "ppp1"){ $eth_name=$ppp; $inet="ppp1"; }elsif($face eq "ppp2"){ $eth_name=$ppp; $inet="ppp2"; }
  204. if($face eq "eth0"){ $eth_name=$eth; $inet="eth0"; }elsif($face eq "eth1"){ $eth_name=$eth; $inet="eth1"; }elsif($face eq "eth2"){ $eth_name=$eth; $inet="eth2"; }
  205. if($face eq "lo"){ $eth_name="Loop Back"; $inet="lo"; }
  206.  
  207. if($face1 eq "eth0"){ $eth_name1=$eth; $inet1="eth0"; }elsif($face1 eq "eth1"){ $eth_name1=$eth; $inet1="eth1"; }elsif($face1 eq "eth2"){ $eth_name1=$eth; $inet1="eth3"; }
  208. if($face && $face1){ $facep=$face; $facee=$face1; $face="${face}*, $face1"; }else{ $face="${face}"; }
  209. if($face eq ""){ $face="Unknown Device"; }
  210. if(!$eth_name){ $eth_name="Unknown Device"; }
  211.  
  212. # Network Traffic
  213. if($inet && $inet1){
  214.   $packet_inp=`grep $inet /proc/net/dev | awk -F: '/:/ {print \$2}' | awk '{printf \$1}'`;
  215.   $packet_outp=`grep $inet cat /proc/net/dev | awk -F: '/:/ {print \$2}' | awk '{print \$9}'`;
  216.   $packet_ine=`grep $inet1 cat /proc/net/dev | awk -F: '/:/ {print \$2}' | awk '{printf \$1}'`;
  217.   $packet_oute=`grep $inet1 cat /proc/net/dev | awk -F: '/:/ {print \$2}' | awk '{print \$9}'`;
  218.   $packet_in=$packet_inp+$packet_ine;
  219.   $packet_out=$packet_outp+$packet_oute;
  220.     if($packet_inp < 1024**3){ $packet_inp=sprintf("%.02f",$packet_inp / 1024**2)."M"; }else{ $packet_inp=sprintf("%.02f", $packet_inp / 1024**3)."G"; }
  221.     if($packet_outp < 1024**3){ $packet_outp=sprintf("%.02f",$packet_outp / 1024**2)."M"; }else{ $packet_outp=sprintf("%.02f", $packet_outp / 1024**3)."G"; }
  222.     if($packet_ine < 1024**3){ $packet_ine=sprintf("%.02f",$packet_ine / 1024**2)."M"; }else{ $packet_ine=sprintf("%.02f", $packet_ine / 1024**3)."G"; }
  223.     if($packet_oute < 1024**3){ $packet_oute=sprintf("%.02f",$packet_oute / 1024**2)."M"; }else{ $packet_oute=sprintf("%.02f", $packet_oute / 1024**3)."G"; }
  224.     if($packet_in < 1024**3){ $packet_in=sprintf("%.02f",$packet_in / 1024**2)."M"; }else{ $packet_in=sprintf("%.02f", $packet_in / 1024**3)."G"; }
  225.     if($packet_out < 1024**3){ $packet_out=sprintf("%.02f",$packet_out / 1024**2)."M"; }else{ $packet_out=sprintf("%.02f", $packet_out / 1024**3)."G"; }
  226.   }elsif($inet){
  227.     $packet_in=`grep $inet /proc/net/dev | awk -F: '/:/ {print \$2}' | awk '{printf \$1}'`;
  228.     $packet_out=`grep $inet /proc/net/dev | awk -F: '/:/ {print \$2}' | awk '{print \$9}'`;
  229.       if($packet_in < 1024**3){ $packet_in=sprintf("%.02f",$packet_in / 1024**2)."M"; }else{ $packet_in=sprintf("%.02f", $packet_in / 1024**3)."G"; }
  230.       if($packet_out < 1024**3){ $packet_out=sprintf("%.02f",$packet_out / 1024**2)."M"; }else{ $packet_out=sprintf("%.02f", $packet_out / 1024**3)."G"; }
  231.   }else{
  232.     $packet_in="0.00M";
  233.     $packet_out="0.00M";
  234. }
  235.  
  236. # Network device speed (in/out, only for one device atm)
  237. # and yes, this isn't exactly pretty but works for now :p
  238. $fst=`grep $inet /proc/net/dev | awk '{print \$1}' | sed 's/.*://'`;
  239. $fsto=`grep $inet /proc/net/dev | awk '{print \$9}' | sed 's/.*://'`;
  240. sleep 1;
  241. $scnd=`grep $inet /proc/net/dev | awk '{print \$1}' | sed 's/.*://'`;
  242. $scndo=`grep $inet /proc/net/dev | awk '{print \$9}' | sed 's/.*://'`;
  243. $total=sprintf("%.02f",$scnd - $fst)."f";
  244. $totalo=sprintf("%.02f",$scndo - $fsto)."f";
  245. $total=sprintf("%.0f",$total / 1024)."kB/ss";
  246. $totalo=sprintf("%.0f",$totalo / 1024)."kB/ss";
  247. chop($fst,$scnd,$total,$fsto,$scndo,$totalo);
  248.  
  249. # uptime stuff
  250. $uptime=`uptime`;
  251. chop($uptime);
  252. $uptime=~ /.+ up (.+),.+[0-9]+ user/;
  253. $uptime=$1;
  254. if($uptime=~ /(.*day.*)/){
  255.   $uptime=~ s/  / /;
  256. }else{
  257.   $uptime=~ s/ //;
  258. }
  259.  
  260. # best uptime related
  261. $buchk=`ls -asl ~/ | grep .buptime | wc -l`;
  262. if($buchk == "0"){ system("cat /proc/uptime | awk '{printf \$1}' > ~/.buptime_uptime"); system("echo \"$uptime\" > ~/.buptime"); }
  263. $cu=`cat /proc/uptime | awk '{printf \$1}'`; chop($cu);
  264. $bu=`cat ~/.buptime_uptime`; chop($bu);
  265. $buptime=`cat ~/.buptime | sed 's/ //'`; chop($buptime);
  266.  
  267. # Distro related
  268. if(-e "/etc/gentoo-release"){ $distro=`cat /etc/gentoo-release | sed 's/version //' | sed 's/release //'`; }
  269. if(-e "/etc/slackware-version"){ $distro=`cat /etc/slackware-version | sed 's/version //'`; }
  270. if(-e "/etc/redhat-release"){ $distro=`cat /etc/redhat-release | sed 's/version //'`; }
  271. if(-e "/etc/mandrake-release"){ $distro=`cat /etc/mandrake-release | sed 's/version //'`; }
  272. if(-e "/etc/debian_version"){ $distro="Debian ".`cat /etc/debian_version | sed 's/version //'`.""; }
  273. if(-e "/etc/SuSE-release"){ $distro=`cat /etc/SuSE-release | head -n1 | sed 's/version //'`; }
  274. if(-e "/etc/turbolinux-release"){ $distro=`cat /etc/turbolinux-release | sed 's/version //'`; }
  275. if(-e "/etc/libranet_version"){ $distro="Libranet-`cat /etc/libranet_version | sed 's/version //'`"; }
  276. if(-e "/etc/arch-release"){ $distro=`cat /etc/arch-release | sed 's/version //'`; }
  277. if(-e "/etc/lunar.release"){ $distro=`cat /etc/lunar.release`; }
  278. if(-e "/etc/bluewhite64-version"){ $distro=`cat /etc/bluewhite64-version`; }
  279. if($distro eq ""){ $distro="Unknown Distro"; } chop($distro);
  280.  
  281. if($switch=~/[i-l]/ or $switch=~/[p-r]/ or $switch=~/[w-z]/){
  282.   $final="";
  283. }elsif($switch=~/d/){
  284.   $final="[Disk]  $hdspaceu of $hdspacet ($hdpercent% Free)";
  285. }elsif($switch=~/m/){
  286.   $swapused=`free -m | grep Swap | awk '{print \$3}'`;
  287.   if($swapused != 0){
  288.     $final="[Memory]  Physical: $mem_free of $mem_total ($mem_per% Free/$buffered_mem Buffered/$cached_mem Cached) :: Swap: $swap_free of $swap_total ($swap_per% Free)";
  289.   }else{
  290.     $final="[Memory]  $mem_free of $mem_total ($mem_per% Free/$buffered_mem Buffered/$cached_mem Cached)";
  291.   }
  292. }elsif($switch=~/s/){
  293.   if($cu > $bu){ system("echo \"$uptime\" > ~/.buptime"); system("echo \"$cu\" > ~/.buptime_uptime"); }
  294.   if($cache){ $cache="(${cpumhz}MHz/"; }
  295.   if(!$cache){ $cache="(${cpumhz}MHz";}
  296.   $final="[OS]  $distro ($uname up $uptime) :: [CPU] $cpus-$cpuinf ${cache}$cpu_load :: [Memory] $mem_free of $mem_total ($mem_per% Free) :: [Disk] $hdspaceu of $hdspacet ($hdpercent% Free) :: [Network] $face: $packet_in In/$packet_out Out";
  297. }elsif($switch=~/t/){
  298.   if(!$cpu_tempc and !$cpu_tempf and !$cpu_rpm){
  299.     $final="[CPU  Temp] No Sensors";
  300.   }else{
  301.     $final="[CPU  Temp] $cpu_tempf($cpu_tempc :: $cpu_rpm)";
  302. #    $final="[CPU  Temp] $cpu_temp1 (fan: $cpu_rpm)";
  303. }
  304. }elsif($switch=~/v/){
  305.   if(!$screen_res and !$screen_depth){
  306.     $final="[Video]  No Display";
  307.   }elsif($vid_card and $con_display){
  308.     $final="[Video]  $vid_card";
  309.   }else{
  310.     $final="[Video]  ${de}/$x (${screen_res}/${screen_depth} Bit${refrsh_rate})";
  311. #    $final="[Video]  ${de}/$x (${vid_card}/${screen_res}/${screen_depth} Bit${refrsh_rate})";
  312. }
  313. }elsif($switch=~/n/){
  314.   if($face && $face1){
  315.     if($facep=~/ppp[0-2]/){ $facep="${inet}"; }
  316.     if($facee=~/eth[0-2]/ && $inet1){ $facee="${inet1}"; }
  317.     $pinfo="($facep: $packet_inp In/$packet_outp Out :: $facee: $packet_ine In, $packet_oute Out)";
  318.   }elsif($face){
  319.     if($face=~/ppp[0-2]/){ $face="${inet}"; }
  320.     if($face=~/eth[0-2]/ && $inet){ $face="${inet}"; }
  321.     $pinfo="($face: $packet_in In($total), $packet_out Out($totalo))";
  322. }
  323.   $final="[Network]  $eth_name $pinfo";
  324. #
  325. }elsif($switch=~/b/){
  326.  if($face){
  327.    if($face=~/ppp[0-2]/){ $face="${inet}"; }
  328.    if($face=~/eth[0-2]/ && $inet){ $face="${inet}"; }
  329.    $pinfo="In: ${total} ($packet_in) :: Out: ${totalo} ($packet_out)";
  330.  }
  331.   $final="[Bandwidth]  $pinfo";
  332. }elsif($switch=~/h/){
  333.   $z="/yasis";
  334.   $final="[commands]
  335.   $z -a (all(full) info)
  336.  $z -b (network bandwidth)
  337.  $z -c (cpu count,speed,cache,load)
  338.  $z -d (disk space used,total,free)
  339.  $z -m (memory/swap used,total,buffered,cached)
  340.  $z -n (network card,iface,in/out traffic/speed)
  341.  $z -o (distro/kernel version and uptime)
  342.  $z -s (short info, no video)
  343.  $z -t (cpu temp/fan rpm)
  344.  $z -u (uptime and best)
  345.  $z -v (enviroment,x11,card,res,bpp)";
  346. }elsif($switch=~/o/){
  347.   $final="[OS]  ${distro} ($uname up $uptime)";
  348. }elsif($switch=~/c/){
  349.   if($cache){
  350.     $cache="(${cpumhz}MHz/$cache/";
  351.   }else{
  352.     $cache="(${cpumhz}MHz";
  353.   }
  354.   $final="[CPU]  $cpus-$cpuinf ${cache}$cpu_load";
  355. }elsif($switch=~/u/){
  356.   if($cu > $bu){ system("echo \"$uptime\" > ~/.buptime"); system("echo \"$cu\" > ~/.buptime_uptime"); }
  357.   $buptime=`cat ~/.buptime`; chop($buptime);
  358.   if($cu < $bu){
  359.     $final="[Uptime]  $uptime (Best: $buptime)";
  360.   }else{
  361.     $final="[Uptime]  $uptime (Best: Current)";
  362.   }
  363. }else{
  364. if($cu > $bu){ system("echo \"$uptime\" > ~/.buptime"); system("echo \"$cu\" > ~/.buptime_uptime"); }
  365. if($cache){ $cache="(${cpumhz}MHz/$cache/"; }
  366. if(!$cache){ $cache="(${cpumhz}MHz";}
  367.   if($do_display == "1"){
  368.     $final="[OS]  $distro ($uname up $uptime) :: [CPU] $cpus-$cpuinf ${cache}$cpu_load :: [Memory] $mem_free of $mem_total ($mem_per% Free) :: [Disk] $hdspaceu of $hdspacet ($hdpercent% Free) :: [Video] $vid_card (${screen_res}/${screen_depth} Bit${refrsh_rate}) :: [Network] $eth_name ($face: $packet_in In/$packet_out Out)";
  369.   }else{
  370.     $final="[OS]  $distro ($uname up $uptime) :: [CPU] $cpus-$cpuinf ${cache}$cpu_load :: [Memory] $mem_free of $mem_total ($mem_per% Free) :: [Disk] $hdspaceu of $hdspacet ($hdpercent% Free) :: [Video] $vid_card :: [Network] $eth_name ($face: $packet_in In/$packet_out Out)";
  371.   }
  372. }
  373.  
  374. $final=~ s/ //;
  375. print "$final\n";
  376.  
  377. sub cat {
  378.   my @file;
  379.   open MYFILE, $_[0] or die "$!";
  380.   @file=<MYFILE>;
  381.   close MYFILE;
  382.   return (wantarray) ? @file : join("",  @file);
  383. }
Advertisement
Add Comment
Please, Sign In to add comment