私はrsyncを使用して、毎日多くの新しいファイルを含む多くのgzファイルを含むリポジトリをバックアップしています。これらのgzファイルはgzipの--rsyncableオプションで構築されていないため、rsyncバックアップの速度は本来よりも遅くなります(サイズを大幅に大きくしたり、互換性に影響を与えたりすることなく、gzファイルをより「rsyncフレンドリー」にします)。また、ファイルはpythonのgzipモジュールを使用するpythonスクリプト(rdiff-backup)によって生成され、gzipの--rsyncableに相当するものをサポートしていないため、作成時に問題を修正できません。
そのため、rsyncを実行する前に、ソースデータ内の新しいgzファイルを識別できます(つまり、rsyncが最後に実行されてからの新しいファイル)。次に、これらのファイルを「再gzip」して、rsyncable-formatでgzip圧縮するようにします。その後、最適化されたソースからrsyncを実行できます。
これは、各ファイルをgunzip、次にgzip --rsyncableで実行することを意味すると思いますが、データやメタデータを失うリスクを冒さない方法でこれを行う方法はあまりわかりません。提案はありがたいことに受け取った。
いい視点ね。実際、よくわかりませんが、確認します。今のところ、いくつかのgzファイルの内容が変更されると仮定しましょう。
—
gogoud
私が考えることができる最高のことは、新しいファイルをチェックし、それらを解凍してから、gzipで再度圧縮するスクリプトを実行すること
—
トム・ハント
--rsyncable
です。
ファイルが変更されなければ、これは問題ではないことに同意します。特に、高速化のために、
—
user3188445
-a
フラグを使用して時間を保存することにより、時間に基づいたチェックサムをスキップするようにしてください。また、私のバージョンのgzipには--rsyncable
フラグがありませんが、znew
必要なものにおそらく使用できるプログラムが付属しています。
トムが考えたように、rdiff-backupによって作成されたgzファイルは一度作成されると変更され
—
gogoud
--rsyncable
ないため、使用しても役に立たないことがわかりました。私はgzアーカイブを安全に解凍し、を使用して再パックするコード行または短いスクリプトを期待していました--rsyncable
。しかし、それは今私にとって単なる学問です。
--rsyncable
問題になるのは、実行と実行の間にファイルが変更されrsync
、変更を送信しようとする場合のみです。rsync
とにかくすべてのデータを送信する必要があるため、新しいファイルはrsyncableかどうかは関係ありません。rsyncの実行中にファイルが変更されていますか?