#! /usr/bin/perl
use File::Copy;
my $from = "/var/local/backup/from/";
my $to = "/var/local/backup/to/";
opendir (H1, $from) || die ("error: cannot read input directory");
opendir (H2, $to) || die ("error: cannot read output directory");
my @files1 = readdir (H1);
my %files2 = map { $_ => 1 } readdir (H2);
closedir (H1);
closedir (H2);
foreach $file (@files1)
{
if ($file != '.' && $file != '..')
{
my $i = 0;
while ($files2{"$file.$i"})
{
$i = $i + 1;
}
if ($i == 0 || -s "$from/$file" != -s ("$to/$file." . ($i - 1)))
{
copy ("$from/$file", "$to/$file.$i");
print "backup $file as $file.$i\n";
}
}
}