rendered paste body#!/usr/bin/perl
sub init
{
use Getopt::Std;
%options=() ;
getopt("d:n:o:",\%options); }
sub program
{
if ( $ARGV[0] eq '-h' || $ARGV[0] eq '--help') { usage(); }
$user = getlogin();
if ($user eq "") {
print "Username is equal to nothing.. defaulting to default.\n";
$user = "default";
}
if ( defined $options{d} ) {
$dir = $options{d} ;
$dirs = $dir ;
foreach ( $dirs ) {
s/(\/(\w|\W)*\/|)(\w|\W)*\///;
}
system("mkdir /backups/tars/$user"); # > /dev/null 2>&1");
system("mkdir /backups/tars/$user/$dirs"); # > /dev/null 2>&1");
} else {
die "Please enter a directory to back up, or use the -h or --help switch for more information.\n";
}
print "Beginning backup...\n";
system "tar -cvf backup.tar.gz $dir";
print "Finished backing up the files in $dirs.\n";
if ( defined $options{n} )
{
$notify = $options{n};
print "Notifying $notify of backup...";
print "done.\n";
} else {
print "Notification step being skipped...\n";
}
chomp ( $date = `date +%F` );
if ( defined $options{o} )
{
$filename = $options{o} ;
print "Moving backup to /backups/tars/$user/$dirs/$filename-$date.tar.gz..." ;
system( "mv backup.tar.gz /backups/tars/$user/$dirs/$filename-$date.tar.gz" );
} else {
print "Filename not given... using default of the date.\n";
print "Moving backup to /backups/tars/$user/$dirs/$date.tar.gz..." ;
system( "mv backup.tar.gz /backups/tars/$user/$dirs/$date.tar.gz" );
}
print "done.\n";
}
init();
program();
sub usage
{
print "Backer-upper\n";
print "Usage: $0 [options]\n\n";
print "Options:\n";
print "\t-d\t\tDirectory to backup.\n";
print "\t-h\t\tHelp menu.\n";
print "\t-n\t\tUser to notify.\n";
print "\t-o\t\tFilename without the extension.\n\n";
print "Example: $0 -dlogs -nroot -ohax\n";
exit; }