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 Sys::Hostname;
|
||||
use File::Copy;
|
||||
use File::Temp;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@ -626,7 +627,6 @@ sub copy_files {
|
||||
sub copy_index
|
||||
{
|
||||
my ($method, $files, $source, $target) = @_;
|
||||
my $tmpfile="$opt_tmpdir/mysqlhotcopy$$";
|
||||
|
||||
print "Copying indices for ".@$files." files...\n" unless $opt{quiet};
|
||||
foreach my $file (@$files)
|
||||
@ -652,23 +652,23 @@ sub copy_index
|
||||
}
|
||||
close OUTPUT || die "Error on close of $to: $!\n";
|
||||
}
|
||||
elsif ($opt{method} eq 'scp')
|
||||
elsif ($opt{method} =~ /^scp\b/)
|
||||
{
|
||||
my $tmp=$tmpfile;
|
||||
open(OUTPUT,">$tmp") || die "Can\'t create file $tmp: $!\n";
|
||||
if (syswrite(OUTPUT,$buff) != length($buff))
|
||||
my ($fh, $tmp)=tempfile('mysqlhotcopy-XXXXXX', DIR => $opt_tmpdir);
|
||||
die "Can\'t create/open file in $opt_tmpdir\n";
|
||||
if (syswrite($fh,$buff) != length($buff))
|
||||
{
|
||||
die "Error when writing data to $tmp: $!\n";
|
||||
}
|
||||
close OUTPUT || die "Error on close of $tmp: $!\n";
|
||||
safe_system("scp $tmp $to");
|
||||
close $fh || die "Error on close of $tmp: $!\n";
|
||||
safe_system("$opt{method} $tmp $to");
|
||||
unlink $tmp;
|
||||
}
|
||||
else
|
||||
{
|
||||
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