Turning system accounting data into money

Nikos Vassiliadis nvass at gmx.com
Tue Oct 11 20:14:51 UTC 2011

On 10/11/2011 5:06 PM, Polytropon wrote:
> This is _not_ a spam message trying to sell something
> stupid to the list. I'm just searching for a solution
> to turn consumed computing resources into a number and
> a currency symbol. :-)
> Reason: A growing amount of (my) customers seems to
> like this concept: They speed a low fee for access to
> systems and applications, and they want to pay according
> to what they did with that system. The access fee covers
> access and some basic services (backup&  quota), and for
> anything "more advanced" they want to be charged per
> "units" used, or per "consumed resources". This can be dialog
> time (SSH), disk I/O, disk occupied, pages printed (can happen)
> or pages required to print on exceptional specific forms
> (can happen once or twice a year and is charged with an
> additional fee for fold, staple&  mutilate).
> Sounds stupid? I have _real_ customers intendedly
> requesting that payment model (instead of "just pay
> amount n Euro a month and do whatever you like").
> Accidentally, I remembered history.
> So I thought: This funcitonality has been present on
> UNIX systems for many decades. But _how_ to use it? I
> know there's the command set for accounting, for example
> the "ac" command. But what does its output "total 7264.15"
> mean? There also are "acct" (process accounting), "sa"
> (for system accounting) and "pac" (for printer accounting,
> just dooesn't seem to work with CUPS).
> I'd also like to use the /etc/csh.logout resp. ~/.logout
> mechanism. When a user logs in, he will be presented the
> program he uses (or a menu, in case he uses different ones).
> This can also be a regular "remote desktop" session. When
> he logs out, a message should be displayed that informs
> him how much will be charged for the session. At the end
> of the month, he should get an invoice with the proper
> accumulated amount.
> For example, if a user wishes to issue a "make a backup
> _now_, because I intendedly want _this_ current state
> backed up _now_", this will be seen as additional I/O
> load and disk occupation (because it's handled aside of
> the regular backup runs that should be part of the
> "basic package" charged with the "conneciton fee").
> Or as I said, he issues printing for stuff he cannot
> print at home, so he will be charged for 500 pages.
> And in case he transfers 10 GB data in, and 10 GB data
> out, he will be charged for that traffic, as well as
> for the I/O.
> The sessions in questions will be SSH sessions (text mode)
> as well as SSH/X sessions (remote desktops).
> Maybe someone already uses something similar he wants
> to share? Suggestions and inspirations are welcome.

Yes, the builtin accounting facilities do most of the stuff you
are interested in. Just add 'accounting_enable="YES"' in your
/etc/rc.conf, run '/etc/rc.d/accounting start' and use sa to
examine the output. I believe the per-user accounting will fit
the bill nicely. You did not mention jails, right?

The networking part perhaps can be a firewall's job, though
I don't know if the per-user IP traffic rules work properly.
There were some problems regarding this ages ago...

The builtin printing stuff I believe is for use with the
ancient printing tools and I know nothing about CUPS...

Hey, these are pretty old stuff you are looking for or perhaps
this email was stuck in the mail server's queue for 25 years;)

HTH, Nikos

More information about the freebsd-questions mailing list