dumpykota can export PyKota's datas in a number of formats. The supported output formats are comma separated values, semicolon separated values, tab separated values, and XML.
For the print job history's datas, a special format identical to CUPS'
page_log format is also supported. This allows you to interface PyKota with third party tools like phpPrintAnalyzer which is a logfile analyzer for CUPS.
More formats may be added in the future. In particular, SQL and LDIF are planned, but are currently not implemented.
dumpykota can also dump all datas at once if you want. The possible dump data types are :
- Users groups
- Printers groups membership
- Users groups membership
- Users print quota entries
- Users groups print quota entries
- History of payments
- History of print jobs
- Billing codes
- All (NB : when dumping All datas, the output format is forced to XML, and filters are disabled)
You can then import the dumped datas into a spreadsheet for example, if you want to create complex reports with nice looking graphs and the like.
An important feature of this command is the possibility to use a simple but powerful filtering mechanism to only export the datas you want. You can pass any number of filter expressions which will be ANDed? together to select only certain records in the database. For example the filter expression
username=jerome would only dump datas pertaining to user
jerome while the filter expression
start=2005 used when dumping the history would only dump jobs printed during the year 2005. However when dumping the complete database, filters can't be used.
Several keys like
username are possible, but some only apply to certain data types. Using a key which is not supported for a particular data type may return an incorrect result.
For date keys, you have to use the
end= key syntax to specify starting and ending dates
of the datas to extract (from the history or payments). These keys accept a special syntax in which
the following formats are recognized :
YYYY: year boundaries
YYYYMM: month boundaries
YYYYMMDD: day boundaries
YYYYMMDDhh: hour boundaries
YYYYMMDDhhmm: minute boundaries
YYYYMMDDhhmmss: second boundaries
yesterday +- NbDays: yesterday more or less N days (e.g. :
today +- NbDays: today more or less N days (e.g. :
tomorrow +- NbDays: tomorrow more or less N days (e.g. :
now +- NbDays: now more or less N days (e.g.
today are not exactly the same since
today represents the first or last second of the day depending on if it's used in a
end= date expression. The utility to be able to
specify dates in the future is a question which remains to be answered :-)
Please refer to the help or manual page of the
dumpykota command to obtain the complete list of supported keys.
This command could also be used if you plan to write your own management tools : just write wrappers around the
dumpykota tools, and your own tools will automatically benefit from PyKota's DataBase? backend independance layer. This is exactly what the third party software phpPykotaAdmin does.
Finally, the functionnalities of
dumpykota are also available remotely through the use of the
dumpykota.cgi CGI script.