利用perl备份与还原数据库一则
时间:2010-04-22 来源:auqfpe
========================DBbak.pl用于备份============================
#!/usr/bin/perl
use strict; my $DB_host;
my $DB_user;
my $DB_passwd;
my $DB_name;
my $filename;
my $socket="/var/run/mysqld/mysql5.socket";
my $data=localtime();
print "please input backup hostaddress[ex:192.168.10.5]: ";
$DB_host=<STDIN>;
chomp($DB_host);
if($DB_host eq "")
{
$DB_host="127.0.0.1";
}
print "please input backup databasname: ";
$DB_name=<STDIN>;
chomp($DB_name);
$filename = "./$DB_name\.sql";
print "please input backup username: ";
$DB_user=<STDIN>;
chomp($DB_user);
print "please input backup password: ";
$DB_passwd=<STDIN>;
chomp($DB_passwd);
my $date1 = time();
system "/usr/local/mysql/bin/mysqldump -h $DB_host -u$DB_user -p$DB_passwd -S $socket $DB_name > $filename";
open(FO, ">>./$DB_name\.log") || die "Cannot Open file:$!";
if(-s $filename)
{
print FO "$data -- $DB_user backup $DB_name OK!\n"; }
else
{
print FO "$data -- $DB_user backup $DB_name failed\n";
}
if($!){
print FO "$data -- $DB_user mysqldump $DB_name OK!\n";
}
else {
print FO "$data -- $DB_name mysqldump fail!\n";
}
my $date2 = time();
my $result = $date2 - $date1; #计算备份数据库所用的总时间.
print "===============================================\n";
print "Backup database used total time: ${result}s.\n";
print "backup data filename: ${DB_name}\.sql\n";
print "backup log filename: ${DB_name}\.log\n";
print "===============================================\n";
========================restore.pl用于还原============================ #!/usr/bin/perl -w
use strict; my $DB_hostname;
my $DB_user;
my $DB_passwd;
my $DB_name;
my $bak_file;
my $date=localtime();
my $result; print "please input connect database hostipaddress: ";
$DB_hostname=<STDIN>;
chomp($DB_hostname);
if($DB_hostname eq "")
{
$DB_hostname="127.0.0.1";
}
print "please input connect database username: ";
$DB_user=<STDIN>;
chomp($DB_user); print "please input connect database password: ";
$DB_passwd=<STDIN>;
chomp($DB_passwd); print "please input restore databasename: ";
$DB_name=<STDIN>;
chomp($DB_name); print "please input backup file[full path]: ";
$bak_file=<STDIN>;
chomp($bak_file);
my $date1=time();
system "/usr/local/mysql/bin/mysql -h $DB_hostname -u$DB_user -p$DB_passwd $DB_name < $bak_file";
open(FILE, ">> ./$DB_name\.log") || die "cannot open:$!";
if(! $!)
{
print FILE "$date restore $DB_name is OK!\n";
print "$date restore $DB_name is OK!\n";
}
else
{
print FILE "$date restore $DB_name is fail!\n";
print "$date restore $DB_name is fail!\n";
} my $date2=time();
$result=$date2-$date1; #计算还原所用的时间.
print "total time: ${result}s.\n";
use strict; my $DB_host;
my $DB_user;
my $DB_passwd;
my $DB_name;
my $filename;
my $socket="/var/run/mysqld/mysql5.socket";
my $data=localtime();
print "please input backup hostaddress[ex:192.168.10.5]: ";
$DB_host=<STDIN>;
chomp($DB_host);
if($DB_host eq "")
{
$DB_host="127.0.0.1";
}
print "please input backup databasname: ";
$DB_name=<STDIN>;
chomp($DB_name);
$filename = "./$DB_name\.sql";
print "please input backup username: ";
$DB_user=<STDIN>;
chomp($DB_user);
print "please input backup password: ";
$DB_passwd=<STDIN>;
chomp($DB_passwd);
my $date1 = time();
system "/usr/local/mysql/bin/mysqldump -h $DB_host -u$DB_user -p$DB_passwd -S $socket $DB_name > $filename";
open(FO, ">>./$DB_name\.log") || die "Cannot Open file:$!";
if(-s $filename)
{
print FO "$data -- $DB_user backup $DB_name OK!\n"; }
else
{
print FO "$data -- $DB_user backup $DB_name failed\n";
}
if($!){
print FO "$data -- $DB_user mysqldump $DB_name OK!\n";
}
else {
print FO "$data -- $DB_name mysqldump fail!\n";
}
my $date2 = time();
my $result = $date2 - $date1; #计算备份数据库所用的总时间.
print "===============================================\n";
print "Backup database used total time: ${result}s.\n";
print "backup data filename: ${DB_name}\.sql\n";
print "backup log filename: ${DB_name}\.log\n";
print "===============================================\n";
========================restore.pl用于还原============================ #!/usr/bin/perl -w
use strict; my $DB_hostname;
my $DB_user;
my $DB_passwd;
my $DB_name;
my $bak_file;
my $date=localtime();
my $result; print "please input connect database hostipaddress: ";
$DB_hostname=<STDIN>;
chomp($DB_hostname);
if($DB_hostname eq "")
{
$DB_hostname="127.0.0.1";
}
print "please input connect database username: ";
$DB_user=<STDIN>;
chomp($DB_user); print "please input connect database password: ";
$DB_passwd=<STDIN>;
chomp($DB_passwd); print "please input restore databasename: ";
$DB_name=<STDIN>;
chomp($DB_name); print "please input backup file[full path]: ";
$bak_file=<STDIN>;
chomp($bak_file);
my $date1=time();
system "/usr/local/mysql/bin/mysql -h $DB_hostname -u$DB_user -p$DB_passwd $DB_name < $bak_file";
open(FILE, ">> ./$DB_name\.log") || die "cannot open:$!";
if(! $!)
{
print FILE "$date restore $DB_name is OK!\n";
print "$date restore $DB_name is OK!\n";
}
else
{
print FILE "$date restore $DB_name is fail!\n";
print "$date restore $DB_name is fail!\n";
} my $date2=time();
$result=$date2-$date1; #计算还原所用的时间.
print "total time: ${result}s.\n";
相关阅读 更多 +
排行榜 更多 +