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 | 14bae3a0bd380c524409d36c75c13d4a6daa6302 (patch) | |
tree | 3deb345222b9f287ffaf47fd46902f427eec717a /examples/printer-accounting/hp5-redir | |
parent | 51e5a1a546adf6ba36c7e4c3298c651cff7e15b9 (diff) | |
download | samba-14bae3a0bd380c524409d36c75c13d4a6daa6302.tar.gz |
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>
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 00000000000..98c2b72edd2 --- /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"; +} |