#!/usr/bin/perl # cl.pl # # Description: # # Updates the files specified in $ccusers with any new clearcase # users, updates last access time, and increments the number of # times the script has seen the user's name in the clearlicense # output. use strict; my $sec; my $min; my $hour; my $mday; my $mon; my $year; my $wday; my $yday; my $isdst; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(); my $date=sprintf "%04d%02d%02d%02d%02d\n",1900+$year,$mon+1,$mday,$hour,$min; chomp($date); my $CL = "/usr/atria/bin/clearlicense"; my @clarr = `$CL`; my $ccusers = "/home/vobadm/clearcase/data/clearcase_users"; open(CCUSERS, "$ccusers"); my @ccusers=; close(CCUSERS); my $user; my $fdate; my $udate; my $numaccess; my %item; foreach $_ (@ccusers) { chomp($_); ($user,$fdate,$udate,$numaccess) = split(/\s+/, $_); $item{$user}{first} = "$fdate"; $item{$user}{date} = "$udate"; $item{$user}{numaccess} = "$numaccess"; } my $get_ui; my $nothing; my $pri; my $timeout; foreach $_ (@clarr) { chomp($_); if ($_ eq "ACTIVE users:") { $get_ui="1"; } elsif ($_ eq "") { $get_ui=""; } elsif ($get_ui) { ($nothing,$user,$pri,$timeout) = split(/\s+/, $_); if ($user ne "User") { $item{$user}{date} = "$date"; $item{$user}{numaccess} = $item{$user}{numaccess} + 1; if (! ($item{$user}{first})) { $item{$user}{first} = "$date"; } } } } open(CCUSERS_W, ">$ccusers"); foreach $_ (sort keys %item) { if ($_ ne "") { $_ = sprintf "%-10s %-14s %-14s %6s\n", $_, $item{$_}{first}, $item{$_}{date}, $item{$_}{numaccess}; print CCUSERS_W $_; } } close(CCUSERS_W);