summaryrefslogtreecommitdiff
path: root/scripts/mysqlhotcopy.sh
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2004-07-09 14:30:51 +0200
committerunknown <serg@serg.mylan>2004-07-09 14:30:51 +0200
commit2b1233c38d194425852ab57328cd8e332f38ae3b (patch)
tree25cf9b2d5cf46463314f632028b18b7c91b058c8 /scripts/mysqlhotcopy.sh
parentcf8a6e52b749a1a1311c31f4aad615593ba25b9e (diff)
downloadmariadb-git-2b1233c38d194425852ab57328cd8e332f38ae3b.tar.gz
mysqlhotcopy:
fix MYI copying with scp safer tempfile creation scripts/mysqlhotcopy.sh: fix MYI copying with scp safer tempfile creation
Diffstat (limited to 'scripts/mysqlhotcopy.sh')
-rw-r--r--scripts/mysqlhotcopy.sh16
1 files changed, 8 insertions, 8 deletions
diff --git a/scripts/mysqlhotcopy.sh b/scripts/mysqlhotcopy.sh
index 6388855eaa6..af4e6084c59 100644
--- a/scripts/mysqlhotcopy.sh
+++ b/scripts/mysqlhotcopy.sh
@@ -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');
}