使用Perl和SCP验证复制的文件
如何使用Perl在远程服务器上验证复制的文件,或者是否可能?下面是我正在使用的Perl命令。我不能使用,所以我的选择有点有限使用Perl和SCP验证复制的文件,perl,scp,verify,Perl,Scp,Verify,如何使用Perl在远程服务器上验证复制的文件,或者是否可能?下面是我正在使用的Perl命令。我不能使用,所以我的选择有点有限 $scpe->scp("/u02/oraclebackup/$tar_file","HOST:/u04/orabkup/oraclebackup/oemp/"); 好的,我已经找到了问题的解决方案,虽然它没有直接验证副本,但如果出现预期错误之外的错误,它将停止脚本。这是我的密码: $scpe->error_handler( \&scp_errors
$scpe->scp("/u02/oraclebackup/$tar_file","HOST:/u04/orabkup/oraclebackup/oemp/");
好的,我已经找到了问题的解决方案,虽然它没有直接验证副本,但如果出现预期错误之外的错误,它将停止脚本。这是我的密码:
$scpe->error_handler( \&scp_errors );
$scpe->scp( "/u02/oraclebackup/$tar_file",
"HOST:/u04/orabkup/oraclebackup/oemp/" );
#Error trapping with exception for known harmless error
sub scp_errors {
my $line = shift;
if ( $line =~ /scp timed out while trying to connect to/ ) {
return (0);
} else {
return (1);
}
}
这似乎解决了我的两个问题。谢谢@chrsblck将遥控器复制回本地,
cmp
本地可能不可靠。。。您可以在远程端使用什么?顺便说一句,通过scp
“错误”的拷贝是可能的?我同意@jm666;除非网络上发生了什么事情,否则你几乎总能保证它成功传输。也许我太谨慎了。这将作为cron中的脚本运行,因此我无法直接监视它,谁知道将来会出现什么样的网络问题。这是在复制我们的数据库备份,因此我想在删除本地副本之前确保它正常。我认为scp
具有内置验证。我假设您使用的是Net::scp::Expect
。阅读“错误处理程序(子参考)…”NP的这一部分。另外,请注意,如果不设置错误\u处理程序
,将发生“简单的'croak()'调用”。如果您不熟悉,我建议您更改;)