我曾经对我的备份进行 tar ball 和 SFTP,但它们变得越来越大,而且我不必要地传输我已经拥有副本的数据,因此决定更新我的代码以通过File::Rsync和它的 delta 算法来利用 rsync。我可以按要求成功传输数据,但我似乎找不到记录传输数据量的方法。以前我可以统计生成的 tar 但由于我不太可能移动源目录中的所有文件,我怎么知道移动的数量?
目标父目录可能不存在,因此它是通过 Net::SSH::Perl 创建的(mkdir -p /path/to/create),重点是我可以在 rsync 之前或之后针对目标运行 cmds。
我将包含我的代码,我怀疑它实际上是否有用,但如果我不这样做,无论如何都会有人要求它。建议任何人?
use File::Rsync;
$obj = File::Rsync->new( { verbose => 1,
archive => 1,
compress => 1,
recursive => 1,
rsh => '/usr/bin/ssh -i /user/.ssh/id_rsa',
delete => 1,
'rsync-path' => '/usr/bin/rsync'
} );
$obj->exec( { src => "$backupwhat",
dest => "host.co.uk:/remote_backup/$backupto"
} ) or warn "rsync failed\n";