Showactive

From WeBWorK_wiki
Revision as of 02:39, 7 June 2012 by Nandor.sieben (talk | contribs) (Created page with "#!/usr/bin/perl # Showactive # Prints a list of active webwork users. # Author: Nandor Sieben @config= `cat $ENV{WEBWORK_ROOT}/conf/global.conf`; for $line (@config) { i...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
  1. !/usr/bin/perl
  1. Showactive
  2. Prints a list of active webwork users.
  3. Author: Nandor Sieben

@config= `cat $ENV{WEBWORK_ROOT}/conf/global.conf`;

for $line (@config) {

 if ($line =~ /\$database_username.*=.*"(.+)"/) {
   $database_username = $1;
 }
 if ($line =~ /\$database_password.*=.*"(.+)"/) {
   $database_password = $1;
 }

}

sub mysql { my ($sql) = @_; qx[mysql -s -u $database_username -p$database_password webwork << EOF $sql quit EOF ]; }

@tables= mysql(q[show tables like '%key';]);

$ctime=time;

foreach $table (@tables) {

 chop $table;
 next if ($table =~ /-/);
  1. print "|$table|\n";
 @rows=mysql(qq[select user_id, timestamp from $table]);
 foreach $row (@rows) {
   if ( $row =~ /(\S+)\s+(\S+)/) {
      $name=$1;
      $stamp=$2;
      $name =~ s/_.+//;
      $age =($ctime - $stamp) / 60;
      if ($age < 10) {
         $table =~ s/_key//;
         print "$table\t $name\t $age\n";
      }
   }
 }

}