← Back to team overview

sslug-teknik team mailing list archive

Re: SV: SV: Printerkø-administration

 

Ja, så skal du på en eller anden måde have fortalt den at det er et
cgi-script... kan desværre ikke huske hvordan man gør... 

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 |
\---------------------------------------/

On Fri, 19 Feb 1999, Peter Chr. Hansen wrote:

> Så viser den bare indholdet af filen. Skal der rettes i httpd.conf for at
> tilføje pl som fil desc.
> 
> > -----Oprindelig meddelelse-----
> > Fra:	Jesper Monsted [SMTP:jesper@xxxxxxxxxxx]
> > Sendt:	19. februar 1999 15:32
> > Til:	Peter Chr. Hansen
> > Cc:	'sslug-teknik@xxxxxxxx'
> > Emne:	Re: SV: [TEKNIK] Printerkø-administration
> > 
> > Bare kør den som et CGI-scripts. (Læg den evt. i /home/httpd/cgi-bin, hvis
> > du bruger redhat, og prøv http://localhost/cgi-bin/print.pl)
> > 
> > 
> > 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 |
> > \---------------------------------------/
> > 
> > On Fri, 19 Feb 1999, Peter Chr. Hansen wrote:
> > 
> > > 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 |
> > > > \---------------------------------------/
> > > 
> 



References