Skip to main content

Chumby One Network Usage Widget


I recently got a Chumby One, and am loving it.  However, the "Network Usage" widget that you can install has a script for the older Chumby, not the newer Chumby One.   To make it work with the Chumby One, you need to add a line to the crontab to run the widget every hour, like so:

chumby:~# cat /psp/crontabs/root
0 3 * * * /usr/chumby/scripts/sync_time.sh
* * * * * /usr/chumby/scripts/flashplayer_watchdog
59 * * * * /psp/cgi-bin/ipusage.pl getdata


Here is the file to run the script: (I changed rbusb0 to wlan0, and removed a ^ in line 89)
***************************************************************************************************************************
chumby:~# cat /psp/cgi-bin/ipusage.pl
#! /usr/bin/perl
$argcount = $#ARGV + 1;
$request = uc($ENV{'QUERY_STRING'});

if ($request eq "REPORT") #URL requests data

{
# send the data format as xml
# format is
#

# retrieve ipusage.dat
$lastrec = 0;
$lastsent = 0;
print "Content-type:text/xml\r\n\r\n";
print "\<\?xml version=\"1.0\" encoding=\"utf-8\"\?\>\n";
$file = "/psp/cgi-bin/ipusage.dat" ;
open(INFO, $file) ;
print "\n";
open(INFO, $file) ;
while ($line =
{
$line =~ s/\n// ; # remove linefeed
while ($line =~ "  ")  # change double spaces to singles
{
$line =~ s/  / / ;
}
@items = split(/ /, $line) ; # get each part of the line   
@subitems = split(/:/, @items[3]) ; # get each part of the line

# line data example Tue Apr 14 10:00:01 2009 102307121 4336958

if (@items[6] <= $lastsent)
{ $lastsent = 0; }
if (@items[5] <= $lastrec)
{ $lastrec = 0; }
$diffsent = @items[6] - $lastsent;
$diffrec = @items[5] - $lastrec;

print "   print "DayOfWeek = \"@items[0]\" ";
print "DayOfMonth = \"@items[2]\" ";
print "Month = \"@items[1]\" ";
print "Year = \"@items[4]\" ";
print "Hour = \"@subitems[0]\" ";
print "Min = \"@subitems[1]\" ";
print "Sec = \"@subitems[2]\" ";
print "SentBytes = \"$diffsent\" ";
print "RecBytes = \"$diffrec\"\> ";
print "\<\/Measurement\>\n";

$lastrec = @items[5];
$lastsent = @items[6];

}
print "<\/IPUsage>\n";
close(INFO) ;
}

if ($request eq "POLICY") # URL requests policy
{
# send the crossdomain policy file

print "Content-type:text\/xml\r\n\r\n";
print "<\?xml version=\"1.0\"\?>\r\n\r\n";
print "<\!-- my crossdomain file -->\n";
print "\n";
print "  \n";
print "<\/cross-domain-policy>\n";

}

if ($argcount == 1) # run from the command line
{

if (uc($ARGV[0]) eq "GETDATA") 
{
$mph = 1; # YOU CAN SET THIS TO THE NUMBER OF MEASUREMENT PER HOUR
$tl = ($mph * 7 * 24) + 10; # calculate how many lines in the file.
# run from crontab
# update ipusage.dat
#
# get the sent and rec bytes from dev file
#
$file = "/proc/net/dev" ;
open(INFO, $file) ;
while ($line =
{
if ($line =~ /wlan0:/) # find the line
{
$line =~ s/wlan0:// ;
while ($line =~ "  ")  # change double spaces to singles
{
$line =~ s/  / / ;
}
while ($line =~ "^ ")  # remove spaces at start of line
{
$line =~ s/^ // ;
}
@items = split(/ /, $line) ; # read the values for rec and sent
$rec = @items[0] ;
$sen = @items[8] ;
}
}
close(INFO) ;
#
# get current date time
#
$tdt = localtime(time()) ;
#
# append values to data file
#
$file = "/psp/cgi-bin/ipusage.dat" ;
open(DAT, ">>$file") ;
printf DAT "$tdt $rec $sen\n" ;
close(DAT) ;
#
# truncate the data file
#  
system("tail -n $tl /psp/cgi-bin/ipusage.dat > /psp/cgi-bin/ipusage.tmp");
system("mv -f /psp/cgi-bin/ipusage.tmp /psp/cgi-bin/ipusage.dat");

}

}
**************************************************************************************************************************************

Comments

Popular posts from this blog

ADS-B plotting with Kali (and other SDR goodies)

Recently I wanted to try some Software Defined Radio stuff.   
I had a RTL-SDR, FM+DAB, DVB-T USB Stick Set with RTL2832U & R820T. that I got from: http://www.amazon.com/gp/product/B00C37AZXK/ref=oh_details_o04_s00_i00?ie=UTF8&psc=1
But, even though this dongle would break out FM radio stations, and ATC frequencies (like the local Ground Control, tower, and even ATIS), which was cool, it wouldn't break out ADS-B.   
Thus, I bought a Vantech Green Mini RTL2832U R820T DVB-T SDR DAB FM USB DIGITAL TV Tuner Receiver RTL-SDR Project + DAB dongle Tuner MCX Input from Amazon, and tried this.  
This dongle was able to listen to the 1090MHz frequency required for ADS-B (as it goes from 25MHz to 1700MHz).  There were tons of Windows programs out there for breaking out and plotting ADS-B Mode S broadcasts, but not many for Linux.  
For Kali Linux, here's how I got it running and plotting planes around my home:
0) before you start, you should do an apt-get update to ensure you hav…

Beaglebone Black as a Wireless Intrusion Detection System (WIDS)

Recently I have been wanting a wireless IDS (WIDS) to detect nefarious wifi activity.  I also had a Beaglebone Black hanging around that I wanted to put to good use.   This seemed like a perfect match, and indeed it seems to be so!

I did some research on WIDSs, and although there is SUPPOSED to be several out there, nearly all that I seemed to find was commercial and Windows-based products, not something I could use myself.   
About the only exception to that rule was Kismet, so I decided to give that a try.  Kismet is supposed to work as a WIDS, and per its documentation should catch the following attacks:
Kismet supports the following alerts, where applicable the WVE (Wireless Vulnerability and Exploits, www.wve.org) ID is included: AIRJACKSSID Fingerprint Deprecated The original 802.11 hacking tools, Airjack, set the initial SSID to 'airjack' when starting up. This alert is no longer relevant as the Airjac…

Temper Temperature monitor on a Beaglebone Black

Beaglebone Black as a temperature monitor:

Recently I wanted to monitor the temperature of my shed.  I thought I'd use a small computer such as a Raspberry Pi or a Beaglebone or Odroid.

My Raspberry Pi boxes were all in use, so I grabbed my Beaglebone, which was doing nothing.

I flashed it with the Debian9.32018-03-054GB SDIoTimage, but that seemed like it was running lots of bloatware and the ethernet interface wouldn't take a static IP with /etc/network/interfaces.

So I went with the Debian9.32018-01-284GB SDLXQTi image instead.  I still had the same problem, that lots of junk was running, and I couldn't configure my interface by modifying /etc/network/interfaces

So my first step was to get rid of all the bloatware.  If you're using a Raspberry Pi or something, you can skip this and just go to the second step below

STEP 1--Remove Blotatware from Beaglebone Black:

With some searching, I came across this post:
https://www.linuxquestions.org/questions/linux-newbie-8/inte…