Perl复制命令等待复制完成

时间:2014-09-15 15:52:34

标签: perl copy

我将文件从位置windowsLocation1复制到LinuxLocation1作为" windowsLocation1-> windowsLocation2-> LinuxLocation1",windowsLocation2是可从Windows和Linux机器访问的交换区域

copy("//server1/dir1/myfile.txt", "$copy_dir/myfile.txt") or die "Copy failed: $!";
<telnet into Linux machine>
$obj->{telnet}->print( "sleep 10; cp /net/dir1/myfile.txt /tmp/files/");
#added "sleep 10, to avoid the race condition between copy and cp.

这&#34;睡眠10&#34;有时秒是不够的,它的抛出错误为&#34; cp:读错误:输入/输出错误&#34;,我认为第二个&#34; cp&#34;命令试图在第一次&#34;复制&#34;命令仍在写作。使用Perl v5.6.1

有没有办法避免这种情况?感谢。

1 个答案:

答案 0 :(得分:1)

我猜你正在从copy模块中获取File::Copy例程。

在对CPAN进行简短搜索之后,我发现了一个名为File::Copy::Vigilant的模块似乎可能符合您的需求,并且已经成功地从perl 5.6中获得了测试报告。

我也发现了File::Copy::Reliable,但只有报告回到了5.8,尽管这是没有证据的证据。就这个模块而言,你可能只是一个旅行先锋的时间....

相关问题