diff options
author | Samba Release Account <samba-bugs@samba.org> | 1996-07-23 03:30:56 +0000 |
---|---|---|
committer | Samba Release Account <samba-bugs@samba.org> | 1996-07-23 03:30:56 +0000 |
commit | 8d9143cbcfd930bf0c2cb3073beb6b27104df915 (patch) | |
tree | 276cc2a9efd982196d0a4166bba29bc358cfb8b1 /examples/printer-accounting/hp5-redir | |
parent | 234b8c602209d966c5b82148b521d9711e08c4b3 (diff) | |
download | samba-8d9143cbcfd930bf0c2cb3073beb6b27104df915.tar.gz samba-8d9143cbcfd930bf0c2cb3073beb6b27104df915.tar.bz2 samba-8d9143cbcfd930bf0c2cb3073beb6b27104df915.zip |
Some examples for printer accounting that I use with samba. lp-acct is
an example for a local printer off a samba server, hp5-redir is for a
remote printer. acct-sum, does the stats from acct-all. There is an
example printcap entry for the redirection of the printer. Lots more
to come!
<pkelly@ets.net>
(This used to be commit 14bae3a0bd380c524409d36c75c13d4a6daa6302)
Diffstat (limited to 'examples/printer-accounting/hp5-redir')
-rw-r--r-- | examples/printer-accounting/hp5-redir | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/examples/printer-accounting/hp5-redir b/examples/printer-accounting/hp5-redir new file mode 100644 index 0000000000..98c2b72edd --- /dev/null +++ b/examples/printer-accounting/hp5-redir @@ -0,0 +1,43 @@ +#!/usr/bin/perl +# +# $Source: /data/src/mirror/cvs/samba/examples/printer-accounting/hp5-redir,v $ +# $Id: hp5-redir,v 1.1 1996/07/23 03:30:56 samba-bugs Exp $ +# +# 0 == stdin == docuement +# 1 == stdout == printer +# 2 == stderr == logging +# +# With redirection to another valid /etc/printcap entry +# + +umask(002); + +# -w132 -l66 -i0 -n pkelly -h master.fcp.oypi.com /var/log/lp-acct +require "getopts.pl"; +&Getopts("w:l:i:n:h:"); + +chomp($date = `date '+%Y-%m-%d.%T'`); + +($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat(STDIN); + +# send to the real printer now. +open(P, "|lpr -Pmgmt0") || die "Can't print to hp5-real ($!)\n"; +$cnt = 0; +while (sysread(STDIN, $buf, 10240)) { + print P $buf; + # this is ugly, but it gives the approx in pages. We + # don't print graphics, so ... There must be a better way :) + $cnt += ($buf =~ /^L/g); +} +close(P); + +$acct = shift; +if (open(ACCT, ">>$acct")) { + print ACCT "$date $opt_n $opt_h $size $cnt\n"; + close(ACCT); +} else { + warn "Err: Can't account for it ($!)\n"; + warn "Log: $date $opt_n $opt_h $size $cnt\n"; +} |