The Common Unix Printing System, or CUPS, does have some basic 
  print quota features.  However, it does not allow for per-user or per-group page quotas, or for quotas which 
  automatically expire after a certain date.  I wanted a finer-grained system, so I modified an existing print 
  accounting system (called accsnmp) to support quota 
  enforcement.  The result is called quosnmp.
   Quosnmp is released under the GNU GPL v2.  
  The goal of quosnmp is to provide reliable print quota enforcement while keeping the code simple and extensible. 
  All you need to use quosnmp is CUPS, Perl, the quosnmp script itself, and one Perl module which is not part of a 
  standard Perl install: Net::SNMP.
  
  Among the enhancements which quosnmp adds to a default CUPS install are:
  
    - Different quotas may be assigned to individual users or to groups.
 
    - Users or groups may be given unlimited quota or be prevented from printing at all.
 
    - Quotas can be absolute numbers (e.g. 500 pages) and/or adjustments (e.g. 100 extra pages for everyone in 
    group foo).
 
    - Quotas can be set to automatically expire at a particular date and time.
 
    - Uses hardware-based print accounting.
 
    - Creates a more detailed page_log ("quosnmp_page_log").
 
    - Creates a more detailed error_log ("quosnmp_error_log").  The level of detail of the 
    information printed to the error log is configurable.
 
  
  
  Other important features include:
  
    - Comes with an install script.
 
    - Can use SNMP or PJL commands to query printer status, and can use SNMP, PJL or Postscript commands to 
    get pagecount.
 
    - Can notify users by e-mail when they exceed their print quota.
 
    - Supports HPLIP URIs.
 
    - Can credit accounts for mandatory banner pages (like billing sheets).
 
    - Comes with a utility script ("quosnmp-util") for doing administrative tasks like checking and 
    setting quotas.
 
    - Written in Perl, so the code is relatively easy to customize.
 
  
  
  The quosnmp backend also has some limitations and caveats, including:
  
    - Only works with network printers, not USB, parallel port, or other locally-connected printers.
 
    - Quosnmp does not natively support period quotas, e.g. ones which reset every month.  It does 
    include some features which make it simple to set up periodic quotas using a cron job.  A sample bash script to run 
    in cron ("reset_print_quotas") is included.
 
    - Quotas by quantity of data in bytes (KLimits) are not supported, though the KLimits enforced 
    by CUPS itself still apply.
 
  
  
  
  Get it here!
  
  
  
  Last modified on 2009-03-13