IdleUsers
From Pickwiki
Jump to navigationJump to search
HomePage>>SourceCode>>PerlSource
This script shows a list of terminals that have not sent or received a character in the last xx minutes. It's useful for enforcing license compliance - put it on a menu somewhere and let your users know it's there. They suddenly become self-policing :-)
#!/usr/bin/perl # 09/13/2000 Ian Show pty's with no activity in the last 30 minutes use File::stat; use Getopt::Std; getopt("c:"); if ($opt_c) { $cutoff = $opt_c; } else { $cutoff = 30; } open (LISTUSER, "listuser|") || die "Cannot open listuser command: $!\n"; while (<LISTUSER>) { ($x, $x, $x, $user, $x, $pty, $x) = split(" "); if ($pty =~ /pts/) { $inode = stat("/dev/$pty"); $mtime = $inode->mtime; $idle = int((time() - $mtime) / 60); if ($idle > $cutoff) {write;} } } format = @<<<<<<<<< logged on to /dev/@<<<<<< has been idle for @#### minutes $user, $pty, $idle .