Hello, just joined the group looking for some help with Perl. I used to have
an NT box running Perl from Active State, it died in a most gruesome way.
Now I have a Novell 5.1 Server. Trying to reconfigure some of the scripts to
run in the Novell environment.
On NT I had a script that ran on the hour and checked a specified directory
for data that was modified in the last hour and made copies of that data to
another directory, basically hourly backups. I kept a couple of weeks work
of the hourly usually. It saved me from going to the tape backups a lot
except for really old stuff.
Obviously NT and Novell are two totally different environments, for one the
Novell being a nix uses "cp" instead of "copy". I've added copy as an alias
to cp so copy works now, but I can't seem to figure out how to type in the
paths to the directories I want to backup.
Appreciate if anyone could help me figure out how to edit this script to be
Novell friendly. I am a complete and total newbie to Perl.
here is the old NT version of the script, which backed up the G drive to the
I:\backups directory
====================================================
#!/usr/local/bin/perl
use File::stat;
use File::Copy;
use File::Path;
#use File::Basename;
$now = time;
($SEC, $MIN, $HOUR, $MDAY, $MON, $YEAR, $WDAY,
$YDAY, $ISDAYLITE)= localtime();
$DAY = sprintf("%02d-%02d-%02d", ++$MON, $MDAY, 1900+$YEAR);
$CURR_HOUR = sprintf("%02d", $HOUR);
&traverse('g:');
sub traverse {
local($dir) = shift;
local($path);
unless (opendir(DIR, $dir)) {
warn "Can't open $dir\n";
closedir(DIR);
return;
}
foreach (readdir(DIR)) {
next if $_ eq '.' || $_ eq '..' ;
$path = "$dir/$_";
if (-d $path) { # a directory
&traverse($path);
} elsif (-f _) { # a plain file
# print "$path\n"; # Print full path to display
$date_string = (stat($path)->mtime);
if ($now - $date_string < 3600) { # is file modified
in the last hour ?
$dest =$dir;
$dest =~ s/g:/i:\/Backups\/$DAY\/$CURR_HOUR\/Gdrive/g;
$dest1 = "$dest/$_";
# print "Backing up $path TO Hourly Backup Drive...\n";
mkpath ("$dest");
copy $path, $dest1;
}
}
}
closedir(DIR);
}
Chris Louden
Engineering Automation Support
Bechtel Nevada / D.O.E.
702-295-2336 -phone
702-794-1968 -pager
click on the link below to send a text message to my pager:
http://paging.nv.doe.gov/gw.wwwMsgLookup?form_type=SPFP&pin_num=7027941968
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]