backupscript

d4mi4n

volksoperator on duty
hiho,
hab hier ein kleines perlscript zum sichern vom homeverzeichnis, kann des bitte mal jemand testen? ich kann das hier im geschäft nicht laufen lassen da ich an ner windowskiste sitze grad, oder ich machs heut abend



Code:
#!/usr/local/bin/perl
 

use strict;

my $homedir = "/usr/home/";
my $destdir = "/tmp/backup/";
my $date = &currentdate();
 
print "\nusername (for backing up his home directory):\n";

chomp(my $username = <STDIN>);

if(! defined getpwnam($username)){
	print "user exists? ...no\nERROR: user $username does not exist\n";
	exit -1;
}else{
	print "user exists? ...yes\n";
}

$homedir .= $username;
if (-d $destdir){
	print "backupdir exists? ...ok\n";
	if (-d ($destdir.$username)){
		print "user-backupdir exists? ...ok\n";
	}else{	
		print "user-backupdir exists? ...no\n";
		mkdir $destdir.$username or die "ERROR: could not make user-backupdirektory\n";
		print "user-backupdir created\n";
	}
}else{	
	print "backupdir exists? ...no\n";
	mkdir $destdir or die "ERROR: could not make backupdirektory\n";
	print "backupdir created\n";
	mkdir $destdir.$username or die "ERROR: could not make user-backupdirektory\n";
	print "user-backupdir created\n";
}

system "tar -zcvf $destdir$username/$date.tar.gz $homedir/* \n" or die "fehler beim taren\n";
print "\n${username}s homedirectory is successfully backed up in $destdir\n";

sub currentdate(){
	(my $sec,my $min,my $hrs,my $day,my $mon,my $year) = (localtime(time))[0,1,2,3,4,5];
	my $time = sprintf("%02d%02d%02d", $hrs, $min, $sec);
	$year += 1900;
	$mon += 1;
	my $date = sprintf("%04d%02d%02d", $year, $mon, $day);
	return $date."_".$time;
}
 
Zurück
Oben