View Full Version : [scripting] A way to add datatraffic
Icheb
02-21-2004, 01:49 PM
I'm currently working on a script that is able to read out the used datatraffic for a certain user for some non DA related services. But I wanted to use the datatraffic system within DA for this.
Is there any way I can safely add traffic to user x without breaking any files ?
Or connect DA to a mysql DB which would contain the extra used traffic for all users ?
(Just one method would really be enough ;))
DirectAdmin Support
02-21-2004, 01:52 PM
Hello.
Append the number of bytes to the
/usr/local/directadmin/data/users/username/bandwidth.tally
John
Icheb
02-21-2004, 01:52 PM
Wow, that's FAST
Thanks :)
l0rdphi1
02-21-2004, 03:22 PM
Please post this when you get it finished :D
I'd love it to count bytes for wget & shoutcast :)
Icheb
02-21-2004, 04:03 PM
Originally posted by l0rdphi1
Please post this when you get it finished :D
I'd love it to count bytes for wget & shoutcast :)
That's gonna be quite hard, since I didn't keep a real track of everything I tried.
At the moment I'm using the program IPFM to figure out what and how traffic was generated...
The only thing I don't see yet is the format of these bandwidth.tally entry's...
example:
41708392.000000
10688725.000000
10032376.000000
18267274.000000
5165004.000000
4417240.000000
3608098.000000
4720176.000000
I would think these to be bytes, but why is the . there, since all stuff behind it are all 0's...
l0rdphi1
02-21-2004, 04:18 PM
Yes, if I remember correctly, those are bytes. God knows why the .000000 is there.
ProWebUK
02-21-2004, 05:55 PM
This has put another idea into my mind... email alerts upon users coming close to their quotas :) - user definable % usage for alerts of course... anyone interested in such a script?
Chris
UltimeWWW
02-21-2004, 11:09 PM
Originally posted by ProWebUK
This has put another idea into my mind... email alerts upon users coming close to their quotas :) - user definable % usage for alerts of course... anyone interested in such a script?
Chris
That would be cool if integrated in DA :)
John...? :p
DirectAdmin Support
02-22-2004, 12:28 AM
Hello,
Yes, the .00000 at the end don't really serve any purpose, but because it use the "double" format instead of "int" or "long", it adds the zeros. You don't need to add them if you don't want to, it should be able to read a regular number just fine.
Current DA *does* send an notification when bandwidth reaches a certain limit. Users are notified at 80% and Resellers at 75%. They are also given an estimate for how many days they have left (simple math for the rate of usage to figure out number of days left)
Those %'s are currently hard coded, and cannot be changed.
John
ProWebUK
02-22-2004, 01:25 AM
Originally posted by DirectAdmin Support
Current DA *does* send an notification when bandwidth reaches a certain limit. Users are notified at 80% and Resellers at 75%. They are also given an estimate for how many days they have left (simple math for the rate of usage to figure out number of days left)
Give me a break.. you beat me to everything :rolleyes: :D
Chris (Trying to find a feature not implemented into DA already)
Icheb
02-22-2004, 02:11 AM
Originally posted by ProWebUK
Give me a break.. you beat me to everything :rolleyes: :D
Chris (Trying to find a feature not implemented into DA already)
I know something :D
How about with each monthly tally the traffic values are *stored* into a log of somekind so that the user or the admin can see the final traffic of that month...
Yes, the .00000 at the end don't really serve any purpose, but because it use the "double" format instead of "int" or "long", it adds the zeros. You don't need to add them if you don't want to, it should be able to read a regular number just fine.
Ok, that's enough info :D
Well, knowing some programming languages don't like working with other formats, I'll just convert my values into a string so that I can add the . and the 0's before I add it to the file.
ProWebUK
02-22-2004, 02:45 AM
Originally posted by Icheb
I know something :D
How about with each monthly tally the traffic values are *stored* into a log of somekind so that the user or the admin can see the final traffic of that month...
Just run a cron command that runs 5 minutes before DA resets it...
10 1 1 * * root cp /etc/usr/local/directadmin/data/users/username/bandwidth.tally /var/log/bandwidth_usage.log
That will backup the bandwidth usage 10 minutes before it gets reset on a standard DA install - with it that simple you can only have data backed up for 1 month - a 5 minutes script could get that to store X months worth of backlogs, compress old logs if needed and setup logrotate to include them...
Note the above cron will only work for 1 user (replacing "username" with that user) - will look at getting something in place for this - maybe log for each user then have a tool which can print a list of all users with some stats such as
Bandwidth Used
Bandwidth allocated
% Usage
Average Monthly usage (based over X months)
That the kind of thing you are looking for? or a simple backup of logs per domain (using the same format while - simply copied?)
Chris
Icheb
02-22-2004, 03:41 AM
That the kind of thing you are looking for?
Yes, partially, I will need to dump this info into a db, which can be accessed by users who log in to my company's website to provide some graphical views...
Instead of a cp command, wouldn't it be better if it called for a certain script that can add all these values (or a total of them) to a database ? (Perl?)
I must admit, I know absolutely nothing about perl scripting at the moment, so personally I am unable to make something like this. (Although I could make a script in PHP to do it)
ProWebUK
02-22-2004, 04:40 AM
I'm not there with perl either... but it could be put on a cronjob with output (averages and actual data) placed into a mysql database directly.
Chris
Icheb
02-22-2004, 04:54 AM
Originally posted by ProWebUK
I'm not there with perl either... but it could be put on a cronjob with output (averages and actual data) placed into a mysql database directly.
Chris
What do you mean with directly ?
A cronjob that's giving out certain values directly converted within the cronjob to SQL query's that will be added to a db using the mysql client within the same cronjob ?
If that's the case, I would give it up right now, I know it's doable, just not by me. Simple bash scripting ok, but this isn't simple anymore :D
But how about a bash script called just before DA's monthly tally that reads out the values and puts them into a db ?
(Although I don't really know how to get Bash to generate nice SQL query's)
(I'd rather give it a try in PHP :D)
ProWebUK
02-22-2004, 05:10 AM
Well, you can use mysql directly from shell / bash - therefore you can insert data into a mysql database that can then be used in whatever way you wish - perl, php etc... you simply code a script to grab those values and do what you want... the shell script would give the ability to quickly view backlogs of any domain full stats etc if I were to do it - mysql would just be a further add-on for any users wishing to expand on the stats retrieved.
If you would prefer it could be 'modular' for example the script runs and passes a set of variables (including different stats / figures etc) to a php file.... then your simply passing the php script with variables from the shell script - not sure how I would do that but it's certainly something to look into.
Chris
ProWebUK
02-22-2004, 06:40 AM
Just to let you know I have done the script to get all users and get their bandwidth data... so insert directly into mysql or would you prefer variables passed through to your own script?
Chris
Icheb
02-22-2004, 07:49 AM
Originally posted by ProWebUK
Just to let you know I have done the script to get all users and get their bandwidth data... so insert directly into mysql or would you prefer variables passed through to your own script?
Chris
WOW
If you want, directly into a database would be fine by me (this way other users can use it as well)
are there some updates?
'offtopic'
is there a script that sends every last day of a month a totally report of used traffic & mb's etc about users/resellers?
DirectAdmin Support
06-01-2004, 11:10 AM
http://www.directadmin.com/features.php?id=377
John
I saw :) and updated :) very very nice
but 1 day to late :( yesterday was the reset ;)
how do i decode the output?
Powered by vBulletin™ Version 4.0.4 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.