All pastes #167609 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-09-12 04:13 UTC
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; }