26 | | PyKota is a complete Print Quota system for the Common Unix Printing |
27 | | System (aka CUPS) or LPR Next Generation (LPRng), which works by directly |
28 | | querying the printers for the number of pages they have printed. |
29 | | |
30 | | Actual working features : |
31 | | |
32 | | - Supports both CUPS and LPRng backends. |
33 | | |
34 | | - Can store quota information either with PostgreSQL or with |
35 | | OpenLDAP. |
36 | | |
37 | | - Per printer user and group quotas. |
38 | | |
39 | | - Automated email warning of users above quota to the |
40 | | user himself and to the print quota administrator. |
41 | | |
42 | | - Filter for quota accounting : pykota |
43 | | |
44 | | - Command line print quota editor : edpykota |
45 | | |
46 | | - Command line print quota report generator : repykota |
47 | | |
48 | | - Command line print quota automated warning sender : warnpykota |
49 | | |
50 | | - Command line print quote maker, to learn how much a print job |
51 | | will cost in advance : pykotme |
52 | | |
53 | | - Command line tools mimic the disk quota utilities for |
54 | | easier mastering. |
55 | | |
56 | | - Centralized storage of quotas : you can manage quotas for |
57 | | different printers on different print servers and store them all |
58 | | on the same quota storage server. |
59 | | |
60 | | - SNMP querying of any networked SNMP-enabled printer. |
61 | | |
62 | | - Netatalk querying of any networked AppleTalk-enabled printer. |
63 | | |
64 | | - External command querying of any printer : you can use |
65 | | you own querying command, e.g. to query a printer via |
66 | | the serial port, sending it a special PJL job and |
67 | | reading the result. See the example scripts in the |
68 | | "untested" directory and try to adapt them to your |
69 | | configuration. |
70 | | |
71 | | - External accounting methods : you can use your own accounting |
72 | | method to compute each job's size. Just create a shell script |
73 | | which reads the job's data from its standard input and prints |
74 | | the job's size on its standard output, and you're done ! |
75 | | |
76 | | - Special scripts included for a seamless integration of |
77 | | PyKota on Debian machines. |
78 | | |
79 | | - Complete job history is saved. This will allow more |
80 | | complex reports in the future. This can be disabled |
81 | | if preserving the history is of no interest or |
82 | | makes the database grow out of control. |
83 | | |
84 | | - Price per page and price per job can be defined for |
85 | | every printer. A job's price is the sum of the |
86 | | price per job for this printer plus the number of |
87 | | pages multiplied by the price per page for this |
88 | | printer. |
89 | | |
90 | | - User's account balance and lifetime paid money are now |
91 | | stored in the Quota Storage, and account balance can be |
92 | | used to limit the user printing instead of a print quota. |
93 | | Actually you can limit either by account balance OR by |
94 | | print quota. Account balance is shared between printers |
95 | | for an user, while quotas are define separately for |
96 | | each printer the user prints on. |
97 | | |
98 | | - Unknown users can be automatically added on first print. |
99 | | |
100 | | All the command line tools accept the -h | --help command line option |
101 | | which prints all the available options and show usage examples. |
| 26 | PyKota features : |
| 27 | ----------------- |
| 28 | |
| 29 | Operating systems : |
| 30 | |
| 31 | - Any Unix-like system as print server. |
| 32 | |
| 33 | - Any operating system as client. |
| 34 | |
| 35 | Printing systems : |
| 36 | |
| 37 | - Supports CUPS as the printing system. |
| 38 | |
| 39 | - Supports LPRng as the printing system. |
| 40 | |
| 41 | Databases : |
| 42 | |
| 43 | - Supports PostgreSQL as the Quota Storage backend. |
| 44 | Complete database creation SQL script is included. |
| 45 | |
| 46 | - Supports OpenLDAP as the Quota Storage backend. |
| 47 | Complete LDAP schema and sample tree are included. |
| 48 | |
| 49 | Printers : |
| 50 | |
| 51 | - Supports any printer which can report its internal |
| 52 | page counter. |
| 53 | |
| 54 | - Supports any other printer via GhostScript. |
| 55 | |
| 56 | - Can ask printers for their internal page counter |
| 57 | via SNMP, Netatalk, or any other mean of your |
| 58 | choice. This is completely configurable. |
| 59 | |
| 60 | - External accounting methods are configurable |
| 61 | |
| 62 | Quota systems : |
| 63 | |
| 64 | - Supports user and groups quotas. |
| 65 | |
| 66 | - Supports page quotas. |
| 67 | Page quotas can be set differently on a per printer |
| 68 | and per user/group basis. |
| 69 | |
| 70 | - Supports account balance quotas in any currency. |
| 71 | Account balance quotas can be set on a per user |
| 72 | basis. The account balance is shared amongst |
| 73 | all printers. |
| 74 | |
| 75 | - Experimental support for printer groups, so that |
| 76 | you can share quota between printers of the same |
| 77 | type but in different locations. |
| 78 | |
| 79 | - Page quota and account balance can be set/reset |
| 80 | independantly. |
| 81 | |
| 82 | - Limiting factor, page quota or account balance, |
| 83 | can be set on a per user or per group basis. |
| 84 | |
| 85 | - Price per page and per job can be set differently |
| 86 | on any printer. |
| 87 | |
| 88 | - Low level of page quota or account balance are |
| 89 | configurable. |
| 90 | |
| 91 | - Both soft and hard limit with configurable grace delay |
| 92 | can be set for page quota. |
| 93 | |
| 94 | - Possibility to disable quota enforcement for any user |
| 95 | or group, while still keeping page accounting. |
| 96 | |
| 97 | Administration : |
| 98 | |
| 99 | - Powerful administration tools can be used to |
| 100 | automate setting or resetting of quotas or |
| 101 | account balances at specific intervals. |
| 102 | |
| 103 | - Administration tools can modify several users, |
| 104 | groups, or printers at once. |
| 105 | |
| 106 | - Account balances can be set, incremented, or |
| 107 | decremented. |
| 108 | |
| 109 | - Users can be automatically added on first print |
| 110 | in a completely configurable way. |
| 111 | |
| 112 | - Quota report generator available either from the |
| 113 | command line or in any web browser. |
| 114 | The web-based quota report generator can be |
| 115 | user/password protected. |
| 116 | |
| 117 | - Print quote generator can tell users how much |
| 118 | a print job will cost them in advance. |
| 119 | |
| 120 | - Policy with regard to unregistered users can |
| 121 | be configured for each printer to either deny |
| 122 | printing, allow printing, or delegate the |
| 123 | decision to any external tool. |
| 124 | |
| 125 | - Warning and error messages can be automatically |
| 126 | sent via email to the administrator, the user, |
| 127 | both, or none. |
| 128 | |
| 129 | - Warning and error messages' content is completely |
| 130 | configurable. |
| 131 | |
| 132 | - Configuration can be changed without needing to |
| 133 | restart the printing system. |
| 134 | |
| 135 | - Complete print job history is kept. This can be |
| 136 | disabled if needed. |
| 137 | |
| 138 | - Automated low quota or balance remainder can be |
| 139 | scheduled regularly or launched manually. |
| 140 | |
| 141 | - All the command line tools accept the -h | --help |
| 142 | command line option which prints all the available |
| 143 | options and show usage examples. |
| 144 | |
| 145 | ==================================================================== |