Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

RE: Server Monitor via Web

by KM (Priest)
on May 23, 2000 at 04:35 UTC ( #14306=note: print w/ replies, xml ) Need Help??


in reply to Server Monitor via Web

Whoa! Evil! cgi-lib.pl was a 'standard' some time ago, but the best thing to use is CGI.pm to do form processing, and an easy way to create HTML (amung other things). If you want, CGI.pm can be used in 'cgi-lib' mode so you shouldn't have to change your method calls. Read the documentation for CGI.pm to learn more about that.

Secondly you should really be using the strict pragma (use strict;) and -w. These will really help you learn how to be a better programmer, and you will get to learn about interesting things like scope!

Some people will disagree with me on this, but I tend to like getting the date using POSIX.pm. Look at the documentation for POSIX, and the strftime() method. Also look at the man page for strftime(3) to see formats. If you agree or not on this, it is still good to look at the module, since it can do quite a bit. Personally, I don't see the use of the text file saying what time the script began.

$loada=`more /proc/loadavg`;

I don't think backticks should be used in CGIs. Although nothing is between them which is passed in from an untrusted source, it is better to use system() in a save manner, like:

system("/bin/more", "/proc/loadavg");

Look at perlsec for safe uses of system()

open(OLDPAGE2, $startfile);
$filesize = -s OLDPAGE;
read(OLDPAGE2, $heading, $filesize);
close(OLDPAGE2);

I'm not really sure why you are not just opening the file and reading it in. Why are you using read()?


Comment on RE: Server Monitor via Web
RE: RE: Server Monitor via Web
by BigJoe (Curate) on May 23, 2000 at 05:55 UTC
    With a system("..", ".."); call does it return the output? I thaught it just returned a 1 or a 0 based on if it worked. Can you just put read(filename, $var, size) ? Without opening?
      Yes, my fsck-up. I forgot what you were doing for a minute when I saw backticks :) You may want to use a pipe, or look at perlsec to see how to safely emulate backticks with fork() and exec(). Now matter how you do it, good to look into all the other possibilities :)

      Cheers,
      KM

      Re: A negative vote on this post
      Why would someone vote negative on a post where there is not only a correction, but viable options for someone to learn with and raise thier clue factor? C'mon people. Unless you are giving good advice, think before you do this.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://14306]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2014-12-27 10:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls