sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #02636
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ød job nr. $kill på $lp-køen."), hr, "\n";
}
else
{
print h3("Kunne ikke afbryde job nr. $kill på $lp-kø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ø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øen:</td><td>Ejer:</td><td>Jobnummer:</td><td>Filnavn:</td><td>Stø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 |
\---------------------------------------/