备份几台服务器的/home分区并将备份文件传到备份主机上:
其实就是执行个命令:
dump 0uf host.date.dump /home
#!/usr/bin/perl -w
use strict;
$/='';
my %data;
while(<DATA>){
chomp $_;
my ($host,$dir)=split /\n/;
$data{$host}=$dir;
}
my $backuphost="backuphost";
my $backup="/backup";
my $host=shift;
my $backuptype=shift;
my $dir_backup=$data{$host};
my $time=localtime;
my @timetur=split / /,$time;
$time=join '-',@timetur[4,1,2,0];
my $archive=$host.".".$time.$backuptype.".dump";
$backuptype=$backuptype."uf";
print "待备份主机:$host\n";
print "备份类型:$backuptype\n";
print "待备份目录:$dir_backup\n";
print "生成的文件:$archive\n";
print "现在开始备份.....\n";
`ssh $host "rm -rf $host.*;dump $backuptype $archive $dir_backup"`;
if($?){
print "备份失败\n";
}else{
print "备份完成\n";
}
print "复制到备份主机$backuphost:$backup.....\n";
`scp $host:$archive $backuphost:$backup`;
if($?){
print "复制备份失败\n";
}else{
print "复制备份完成\n";
}
__DATA__
web
/home
jt
/home
nsp
/home
运行脚本:
