rsync --link-dest は、転送全体が終了したときのハードリンクのみと一致します。

rsync --link-dest は、転送全体が終了したときのハードリンクのみと一致します。

このコマンドは、定期的なバックアップを作成するスクリプトに使用されます。

rsync -aP --link-dest="$BACKUP_DIR/Latest/TheProject" \
    "$SOURCE_DIR/" "$BACKUP_DIR/inProgress/TheProject"
  • $SOURCE_DIRコピーするファイルの「リアルタイム」位置。/opt/TheProject例:
  • $BACKUP_DIR/Latest最新のタイムスタンプへのソフトリンク(例:$BACKUP_DIR/20220714-0000.(スクリプトの最後では、ディレクトリ$BACKUP_DIR/inProgressは現在のタイムスタンプに移動されます$BACKUP_DIR/20220714-0000))
  • $SOURCE_DIR$BACKUP_DIR別のファイルシステムにあります。

プロジェクトの一部の大容量ファイルはほとんど変更されないため--link-dest

うまく機能し、ハードリンクも機能します(を使用して見たようにls -i)。たとえば、$BACKUP_DIR/20220714-0000/somedir/bigfile1.bin以前のバージョンと同じinodeを持ちます$BACKUP_DIR/20220713-0000/somedir/bigfile1.bin

問題は、このハードリンクがただ発生しているようです。最後に全体のrsync操作プロセス。

rsync実行時には$BACKUP_DIR/inProgress/somedir/bigfile1.bin実際には異なるinodeがあります(完全にコピーされ、他のファイルが処理されているにもかかわらず)。

rsync欠点は、コマンドの実行が完了した後にほとんどのファイルが解放されても、ソース内のすべてのファイルの一時コピーを最初に作成するのに十分なスペースが必要であることです。

たとえば、絶対に変更されない10個の1GBファイルとバックアップの間に変更される1個の1KBファイルがある場合、追加のディスク容量を約1KBしか使用しない場合でも、そのバックアップを実行するにはまだ10GBの空き容量が必要です。変更されていないファイルは最終的にハードリンクされます。

私はこれを試しましたが、役に立たないようです-H。進行中にこれらのハードリンクを作成する--inplaceオプションはありますか(したがって、最大のファイルには最小限の空き容量しか必要なく、すべてのファイルは必要ありません)。rsync

ベストアンサー1

おすすめ記事