fmonitor.pl
Copying Source is Forbidden
76 lines of code
1
#!/usr/local/bin/perl
2
3
binmode(STDIN, ":utf8");
4
binmode(STDOUT, ":utf8");
5
6
# must have's!
7
use strict;
8
use warnings;
9
use CGI::Carp qw(fatalsToBrowser);
10
use DBI;
11
use URI::Escape;
12
use Term::ReadKey;
13
14
use lib "/var/www/html/Pm";
15
use Bc_dir qw(files files_asHash);
16
17
my $DEBUG = 1;
18
19
############################################################
20
21
### YOUR CONTENT HERE
22
ReadMode 4;
23
my $key = "";
24
25
# get a list of files, and save it in memory
26
my %files = files_asHash("./");
27
my $numFiles = keys %files;
28
if ($DEBUG) {
29
if ($numFiles) {
30
foreach my $file (sort keys %files) {
31
print "$file ";
32
}
33
print "\n-----------------------------------------------------\n";
34
} else {
35
print "no files!\n";
36
exit 1;
37
}
38
}
39
40
my %discrepencies;
41
while ( !defined( $key = ReadKey(-1) ) ) {
42
#print "No key yet\n";
43
# now, get another list of the files
44
# and compare that list to our orig files
45
# if the lists don't match, show the differences
46
# also, show which list is different
47
my %loopFiles = files_asHash("./");
48
my $numLoopFiles = keys %loopFiles;
49
50
if ($numFiles != $numLoopFiles) {
51
my @differences = ();
52
if ($numFiles > $numLoopFiles) {
53
print "\@files is bigger!\n";
54
} else {
55
foreach my $file (keys %loopFiles) {
56
if (not $files{$file}) {
57
if ($discrepencies{$file}) {
58
$discrepencies{$file}++;
59
} else {
60
$discrepencies{$file} = 1;
61
}
62
}
63
}
64
}
65
} else {
66
}
67
68
sleep 0.5;
69
}
70
71
print "Get key $key\n";
72
ReadMode 0;
73
############################################################
74
75
76
exit 1;