diff options
| author | Paul Buetow <paul@buetow.org> | 2023-02-26 17:03:49 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2023-02-26 17:03:49 +0200 |
| commit | 944e5035b60f09ce68aa66d6b89168cd9151f482 (patch) | |
| tree | f47a14fcf49fd1a4c1a0ba63741db736e15a7ed8 /src/guprecords | |
| parent | 7c31ae967dde77be3c734d43d985b279ff172424 (diff) | |
clean up perl stuff
Diffstat (limited to 'src/guprecords')
| -rwxr-xr-x | src/guprecords | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/src/guprecords b/src/guprecords deleted file mode 100755 index 3722470..0000000 --- a/src/guprecords +++ /dev/null @@ -1,181 +0,0 @@ -#!/usr/bin/env perl - -# guprecords (c) 2014, Paul Buetow -# E-Mail: guprecords@mx.buetow.org WWW: http://codeberg.org/snonux/guprecords - -use strict; -use warnings; -use v5.14; - -use Getopt::Long; -use POSIX qw(strftime); -use Term::ANSIColor; - -our $VERSION = 'VERSION_DEVEL'; -our $FLAG = 0; -our $NOW = time(); - -our %ARGS = ( - all => 0, - help => 0, - nofqdn => 0, - reverse => 0, - total => 0, - nocolor => 0, - 'oldage=i' => 180, - 'count=i' => 23, - 'indir=s' => '.', -); - -our %OPTS = map { $_ => \$ARGS{$_} } keys %ARGS; -GetOptions %OPTS or die "Error in command line arguments. Try --help"; - -sub help() { - say "Ths is guprecords Version $VERSION"; - print "Usage: $0\n"; - say "\t--$_" for sort keys %ARGS; - say 'Please also consult the guprecords manual page.' -} - -sub uptime($) { - my $uptime = shift; - my ($s,$m,$h,undef,undef,$y,undef,$d) = localtime($uptime); - - $y -= 70; - $d += $y * 365; - - sprintf "%3dd %02d:%02d:%02d", $d, $h, $m, $s; -} - -sub trimlen($$) { - my ($string,$len) = @_; - - if (length $string > $len) { - substr($string, 0, ($len-2)).'..'; - } else { - $string; - } -} - -sub out(\@;$) { - my ($records,$show_bt) = @_; - - $FLAG = 1; - my $count = 0; - - printf "%3s | %17s | %20s | %13s | %24s\n", - 'Pos', - 'System', - 'Kernel', - 'Uptime', - (defined $show_bt ? 'Boot time' : ''); - - map { - return if $count++ == $ARGS{'count=i'}; - - my $name = $ARGS{nofqdn} ? $_->{hostname} : $_->{fqdn}; - - print color 'bold' if !$ARGS{nocolor} and $_->{is_old}; - - printf "%3d | %17s | %20s | %13s | %24s\n", - $count, - trimlen($name,17), - trimlen($_->{kernel},20), - uptime($_->{uptime}), - (defined $show_bt ? ''.localtime($_->{bootime}) : ''); - - print color 'reset' if !$ARGS{nocolor} and $_->{is_old}; - } - do { - unless ($ARGS{reverse}) { - sort { $b->{uptime} <=> $a->{uptime} } @$records - } else { - sort { $a->{uptime} <=> $b->{uptime} } @$records - } - }; -} - -sub is_old($) { - my $time = shift; - # Count per day - my $oldage = 86400 * $ARGS{'oldage=i'}; - - return $NOW - $time < $oldage ? 1 : 0; -} - -sub all() { - my @records; - - for my $file (<$ARGS{'indir=s'}/*.records>) { - my ($fqdn) = $file =~ m#.*/(.*)\.records#; - my ($hostname) = $fqdn =~m#([^\.]+)#; - - my $uptime_total = 0; - - open my $fh, $file or die "$file: $!\n"; - while (<$fh>) { - chomp; - my ($uptime,$boot,$kernel) = split ':'; - - push @records, { - bootime => $boot, - fqdn => $fqdn, - hostname => $hostname, - kernel => $kernel, - uptime => $uptime, - is_old => is_old $uptime + $boot, - }; - - } - close $file; - - } - - out @records, 'show_bt'; -} - -sub total() { - my @records; - - for my $file (<$ARGS{'indir=s'}/*.records>) { - my ($fqdn) = $file =~ m#.*/(.*)\.records#; - - my $uptime_ = 0; - my $kernel_; - - my ($highest, $newest) = (0, 0); - - open my $fh, $file or die "$file: $!\n"; - while (<$fh>) { - chomp; - my ($uptime,$boot,$kernel) = split ':'; - - $uptime_ += $uptime; - - if ($highest < $uptime) { - $highest = $uptime; - $kernel_ = $kernel; - } - - $newest = $uptime + $boot if $newest < $uptime + $boot; - } - close $file; - - push @records, { - uptime => $uptime_, - kernel => $kernel_, - fqdn => $fqdn, - is_old => is_old $newest, - }; - - } - - out @records; -} - -help if $ARGS{help}; -all if $ARGS{all}; -total if $ARGS{total}; - -help unless $FLAG; - |
