This file is indexed.

/usr/lib/ifmail/fido.daily is in ifmail 2.14tx8.10-22.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/usr/bin/perl
#
# fido.daily -- resume your ifcico, iftoss, ifmail, and ifnews logs
#
# by Joaquim Baptista, px@fct.unl.pt
#
# Placed on the public domain.  If you make significant improvements on
# this script, please send them to me so that I can mantain a "reference"
# version.  This script works with ifmail28; future versions may break it.
#
# Example usage from cron, before rotating the logs:
#     fido.daily iflog | mail -s 'Daily Fidonet report' sysop
#
# v1.1 -- Ignore "@somenet" in addresses like "2:362/42@fidonet" to avoid
#         multiple entries for the same node.  Add -s option to select
#         nodes.  Avoid dupplicate lines in the table of messages sent.
#         Add report of period covered.
#
# v1.0 -- First release
#
# Modified by kao@linux.it
#

use Getopt::Std;
getopts("s:") || die "usage: $0 [-s pattern] [file...]\n";
if ($opt_s ne "") { $opt_s =~ s/([^a-zA-Z0-9\s])/\\$1/g; }

$first="zzz 99";
$last= "      ";
while (<>) {
  if (/^([A-Z][a-z][a-z] [ \d]\d )/) {
    $date= substr($_,0,15);
    if ($date lt $first) { $first=$date; }
    if ($last lt $date ) { $last=$date; }
  }

  if    (/ifcico\[(\d+)\]: calling\s+([^\s@]+)/ ) {
    $call{$1}=$2;
    $attempts{$2}++;
  }
  elsif (/ifcico\[(\d+)\]: chat got "CONNECT"/) {
    $conn{$call{$1}}++;
  }
  elsif (/ifcico\[(\d+)\]: chat got "BUSY"/) {
    $busy{$call{$1}}++;
  }
  elsif (/ifcico\[(\d+)\]: chat got "NO CARRIER"/) {
    $noca{$call{$1}}++;
  }
  elsif (/ifcico\[(\d+)\]: received (\d+) bytes in (\d+)/) {
    $bytes_rcvd{$call{$1}} += $2;
    $seconds_rcvd{$call{$1}} += $3;
  }
  elsif (/ifcico\[(\d+)\]: sent (\d+) bytes in (\d+)/) {
    $bytes_sent{$call{$1}} += $2;
    $seconds_sent{$call{$1}} += $3;
  }
  elsif (/iftoss\[(\d+)\]: packet from node ([^\s@]+)/) {
    $toss{$1}= $2;
  }
  elsif (/iftoss\[(\d+)\]: No newsgroup for area tag (\S+)/) {
    $toss_area{$2}++;
  }
  elsif (/iftoss\[(\d+)\]: end (\d+) echomail, (\d+)/) {
    $tosskeys{$toss{$1}} ++;
    $echomail{$toss{$1}} += $2;
    $netmail{$toss{$1}}  += $3;
  }
  elsif (/ifmail\[(\d+)\]: route: ([^\s@]+)/) {
    $ifmail{$2}++;
  }
  elsif (/ifnews\[(\d+)\]: route: ([^\s@]+)/) {
    $snews{$1}= $2;
  } 
  elsif (/ifnews\[(\d+)\]: end input (\d+)/) {
    $ifnewskeys{$snews{$1}} ++;
    $ifnewscount{$snews{$1}} += $2; 
  }
  elsif (/ifcico\[(\d+)\]: start inbound/) {
    $inb{$1} = $1;
    $inbcount{$1}++;
  }
  elsif (/ifcico\[(\d+)\]: remote operator: ([\S ]*)/) { 
    $inbkeys{$inb{$1}} = $2;
  }
  elsif (/ifcico\[(\d+)\]: remote     time: ([\S ]*)/) { 
    $inbtime{$inb{$1}} = $2;
  }
}

print "Report period:\n  From  $first\n  To    $last\n\n";

print "Call-out systems (ifcico):\n";
print "Attempts Busy NoCa Conn   Time   Received    Sent   System\n";
for $s (sort keys %attempts) {
  next  if  ($opt_s ne "") && ($s !~ /$opt_s/o);
  printf("%7d  %3d  %3d  %3d %s   %6dKb  %4dKb   %s\n",
         $attempts{$s}, $busy{$s}, $noca{$s}, $conn{$s},
         &mmss($seconds_rcvd{$s}+$seconds_sent{$s}),
         $bytes_rcvd{$s}/1024, $bytes_sent{$s}/1024, $s);
}

print "\n\nMessages received by system (iftoss):\nEchomail Netmail  Route\n";
for $s (sort keys %tosskeys) {
  next  if  ($opt_s ne "") && ($s !~ /$opt_s/o);
  printf("%7d %7d   %s\n", $echomail{$s}, $netmail{$s}, $s);
}

print "\n\nMessages sent by system (ifnews+ifmail):\nEchomail Netmail  Route\n";
%aux=(%ifmail, %ifnewskeys);
for $s (sort (keys %aux)) {
  next  if  ($opt_s ne "") && ($s !~ /$opt_s/o);
  printf("%7d %7d   %s\n", $ifnewscount{$s}, $ifmail{$s}, $s);
}

print "\n\nCall-in systems (ifcico):\n";
printf("%-20s%s\n","Time","Operator");
for $s (sort keys %inbcount) {
  next  if  ($opt_s ne "") && ($s !~ /$opt_s/o);
  printf("%-20s%s\n",
         $inbtime{$s}, $inbkeys{$s});
}

if (%toss_area) {
  print "\n\nMessages not tossed for lack of area tag (iftoss):\nNumber  Area tag\n";
  for $a (sort keys %toss_area) {
    printf("%5d    %s\n", $toss_area{$a}, $a);
} }

exit 0;

sub mmss {
  local($s)= @_;
  sprintf("%4d:%2.2d", $s/60, $s-int($s/60)*60);
}