sshでリモートバックアップ

パスワードなしのdsaで認証を通してやる必要があります。





ssh_baclup.pl target.list

#!/usr/bin/perl

$SERVER='hogehoge@192.168.1.2';

main();
exit();

sub main{
	my @lists=read_target($ARGV[0]);
	
	for(@lists){
		my ($target,$savename)=split(/,/,$_,2);
		print "Backup: $target\n";
		my $t=time();
		system("ssh $SERVER 'savelog -l $savename'");
		system("tar cpfz - $target |ssh $SERVER 'cat >$savename'");
		print "Finish: $target (",time()-$t,"s)\n";
	}
}

sub read_target($){
	my @ret;
	
	open(IN,$_[0]);
	while(){
		chomp $_;
		push (@ret,$_);
	}
	return @ret;
}


target.list

/var/www,varwww
/var/mysql,varmysql