以前はバックアップの tar ボールと SFTP を使用していましたが、それらが大きくなり、既にコピーを持っているデータを不必要に転送しているため、コードを更新してFile::Rsync経由で 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";