mysqlhotcopy:
fix MYI copying with scp safer tempfile creation
This commit is contained in:
parent
e228547a61
commit
8064f06562
@ -8,6 +8,7 @@ use File::Path;
|
|||||||
use DBI;
|
use DBI;
|
||||||
use Sys::Hostname;
|
use Sys::Hostname;
|
||||||
use File::Copy;
|
use File::Copy;
|
||||||
|
use File::Temp;
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
@ -626,7 +627,6 @@ sub copy_files {
|
|||||||
sub copy_index
|
sub copy_index
|
||||||
{
|
{
|
||||||
my ($method, $files, $source, $target) = @_;
|
my ($method, $files, $source, $target) = @_;
|
||||||
my $tmpfile="$opt_tmpdir/mysqlhotcopy$$";
|
|
||||||
|
|
||||||
print "Copying indices for ".@$files." files...\n" unless $opt{quiet};
|
print "Copying indices for ".@$files." files...\n" unless $opt{quiet};
|
||||||
foreach my $file (@$files)
|
foreach my $file (@$files)
|
||||||
@ -652,23 +652,23 @@ sub copy_index
|
|||||||
}
|
}
|
||||||
close OUTPUT || die "Error on close of $to: $!\n";
|
close OUTPUT || die "Error on close of $to: $!\n";
|
||||||
}
|
}
|
||||||
elsif ($opt{method} eq 'scp')
|
elsif ($opt{method} =~ /^scp\b/)
|
||||||
{
|
{
|
||||||
my $tmp=$tmpfile;
|
my ($fh, $tmp)=tempfile('mysqlhotcopy-XXXXXX', DIR => $opt_tmpdir);
|
||||||
open(OUTPUT,">$tmp") || die "Can\'t create file $tmp: $!\n";
|
die "Can\'t create/open file in $opt_tmpdir\n";
|
||||||
if (syswrite(OUTPUT,$buff) != length($buff))
|
if (syswrite($fh,$buff) != length($buff))
|
||||||
{
|
{
|
||||||
die "Error when writing data to $tmp: $!\n";
|
die "Error when writing data to $tmp: $!\n";
|
||||||
}
|
}
|
||||||
close OUTPUT || die "Error on close of $tmp: $!\n";
|
close $fh || die "Error on close of $tmp: $!\n";
|
||||||
safe_system("scp $tmp $to");
|
safe_system("$opt{method} $tmp $to");
|
||||||
|
unlink $tmp;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
die "Can't use unsupported method '$opt{method}'\n";
|
die "Can't use unsupported method '$opt{method}'\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unlink "$tmpfile" if ($opt{method} eq 'scp');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user