← Back to team overview

sslug-teknik team mailing list archive

SV: Printerkø-administration

 

Hvordan skal den kaldes fra html dokumentet???

> -----Oprindelig meddelelse-----
> Fra:	Jesper Monsted [SMTP:jesper@xxxxxxxxxxx]
> Sendt:	19. februar 1999 13:36
> Til:	sslug-teknik@xxxxxxxx
> Emne:	[TEKNIK] Printerkø-administration
> 
> Der var nogle stykker der spurgte efter et script til at holde øje med
> printerkøer, inden jeg tog på ferie for et par uger siden... her kommer
> det så :)
> 
> --- start print.pl ---
> #!/usr/bin/perl
> 
> use CGI qw/:standard/;
> $ENV{PATH} = "/usr/bin";
> undef $ENV{ENV};
> 
> # Printernavne - kun til pynt
> $names{lp} = "HP Deskjet 670C";
> $names{hpl4} = "HP LaserJet 4";
> 
> print header, start_html("Printerkø-editor"),
> h1("Printerkø-editor"), hr, "\n";
> open PRINTCAP, "/etc/printcap" or RIP("Kan ikke åbne
> /etc/printcap");
> 
> foreach (<PRINTCAP>) 
>   {
>   if (/^(\w+):/)
>     {
>     push @printers, $1;
>     }
>   }
> 
> if ($kill = param("kill")) 
>   {
>   $< = 0;
>   $> = 0;
>   $( = 0;
>   $) = 0;
>   $lp = param("lp");
>   ($kill) = ($kill =~ /^(\d+)/);
>   ($lp) = ($lp =~ /^(\w+)/);
>   $command = "lprm -P $lp $kill";
>   $_ = `$command`;
>   if (/dequeue/)
>     {
>     print h3("Afbr&oslash;d job nr. $kill p&aring; $lp-k&oslash;en."), hr,
> "\n";
>     }
>   else
>     {
>     print h3("Kunne ikke afbryde job nr. $kill p&aring;
> $lp-k&oslash;en."), hr, "\n";
>     }
>   }
> 
> if (scalar @printers > 0) 
>   {
>   print h4("Fandt " . scalar @printers . " printere."), hr, "\n";
>   }
> else
>   {
>   RIP(h2("Fandt ingen printere!") . "\n");
>   }
> 
> foreach $printer (@printers) 
>   {
>   print h3("K&oslash;navn: $printer, Printernavn: $names{$printer}"),
> "\n";
>   open LPQ, "lpq -P $printer |";
>   print h4("Printerstatus: " . <LPQ>);
>   if (<LPQ>) 
>     {
>     print "<table border=1>\n";
>     print "<tr><td>Nummer i
> k&oslash;en:</td><td>Ejer:</td><td>Jobnummer:</td><td>Filnavn:</td><td>St&
> oslash;rrelse</td><tr>\n";
>     foreach (<LPQ>)
>       {
>       ($rank,$owner,$job,$file,$size) = /(.{7})(.{11})(.{5})(.{38})(.+)/;
>       $rank =~ s/^(\d+).*/$1/;
>       $owner =~ s/^(\w+).*/$1/;
>       $job =~ s/^(\d+).*/$1/;
>       $file =~ s/\ *$//;
>       $size =~ s/\ *$//;
>       print
> "<tr><td>$rank</td><td>$owner</td><td>$job</td><td>$file</td><td>$size</td
> ><td><a href=\"print.pl?kill=$job&lp=$printer\">Kill</a></td></tr>\n";
>       }
>     print "</table>\n";
>     }
>   print hr;
>   } 
> 
> sub RIP {
>   die h1(join(" ", @_)) . "\n" . end_html;
>   }
> --- end print.pl ---
> 
> Programmet skal være suid root for at kunne myrde printerjobs...
> 
> 
> Jesper
> 
> /---------------------------------------\
> | "We know where we want to go today!!" |
> |    Go Linux! http://www.linux.org/    |
> |---------------------------------------|
> | Help us convince the US government to |
> | allow strong cryptography...          |
> |                 - www.distributed.net |
> \---------------------------------------/


Follow ups