in reply to backfiles
#!/usr/bin/perl -w use strict; use Archive::Tar; use Getopt::Long; use Pod::Usage; use vars qw($base $dir $name $comp $list @file $debug $help); GetOptions( 'base=s' => \$base, 'dir=s' => \$dir, 'name=s' => \$name, 'comp=s' => \$comp, 'list=s' => \$list, 'file=s' => \@file, 'debug!' => \$debug, 'help|?' => \$help, ); pod2usage(-verbose=>1) if $help; pod2usage(-verbose=>2) unless $name and $list or @file; $base ||= '.'; $comp ||= 9; $dir = (localtime)[7]; print "BaseDIR: $base\n" if $debug; die "$base is not a directory" unless -d $base; if ($list) { open FH,'<',$list or die "couldn't open $list: $!"; chomp(@file = <FH>); } my $tardir = "$base/$dir"; print "archive is $tardir/$name\n" if $debug; print "files are @file\n" if $debug; if (-d "$tardir") { print "$tardir already exists\n" if $debug; } else { mkdir "$tardir", 0740 or die "cannot mkdir $tardir"; print "created $tardir\n" if $debug; } my $tar = Archive::Tar->create_archive("$tardir/$name",$comp,@file); __END__ =head1 NAME backup.pl -- backup files listed in text file or command line =head1 SYNOPSIS backup.pl -list|-file [-dir -name -args -debug -help] Options: -name required - name of tar file: -file required - specify files to archive or ... -list text file containing list of files to srchive -base dir to store tar directory: default is . -dir dir to store tar file: day of year is default -comp compression level: default is 9 -debug prints debugging messages -help this message Examples: backup.pl -list=backlist.txt -name=foo.tar backup.pl -file=foo.txt -file=bar.txt -name=foo.tar =cut
|
|---|