Borg:(再帰的)ディレクトリ変更がある場合にのみバックアップアーカイブを作成する

Borg:(再帰的)ディレクトリ変更がある場合にのみバックアップアーカイブを作成する

現在、私はcronスクリプトを使用して、バックアップしたいディレクトリに対して毎時間Borgアーカイブを作成しています。しかし、これは完全に理想的なものではありません。理想的には、ファイルシステムの対応する部分がアクティブになっている間、1時間に1回以上バックアップを作成したいと思います。逆に、時にはディレクトリの1つが一度に数週間変わらずに残ることがあります。したがって、毎時間アーカイブを作成するのはスペースを無駄にするだけで、手動で一部を閉じて開いたくありません。

私の検索によると、Linuxには実際に強力な連続バックアップシステムはありません。この結論が間違っている場合は、正しい方向を教えてください。

しかし、それが本当なら、次善策を取りたいと思います。ファイルが変更されたときにのみアーカイブを作成することです(つまり、ライブファイルシステムのチェックサムがアーカイブ内のファイルのチェックサムと一致しません... .. .理想的に)。

スクリプト、プログラムオプション、またはその他の手段でこれを行う方法はありますか?

ありがとうございます。

答え1

--files-cache ctime,sizeを試してinodeを無視し、重複排除が機能していることを確認してください。一部のマウントデバイス(sshfsなど)では、マウントするたびにinodeが変更されるため、無視する必要があります。詳しくは man borg-create をご覧ください。

答え2

Borgは重複排除(新しいデータのみコピー)を実行するため、必ずしも必要ではありませんが、不要なバックアップがありますborg list

スクリプトは、フォルダ内の最新のファイルを見つけて親フォルダをインポートし、borgバックアップディレクトリと比較します。

folder='<your folder to recurse'
bak='<your borg backup directory>'

recent="`find "$folder" "$bak" -type f -printf '%T+ %p\n'| sort -n | tail -n1 | awk '{ print $2 }'`"
echo "Most recent file: $recent"
if [[ "`dirname $recent`" == "$bak" ]]; then
    echo "Archive is Up to date!"
else
    echo "Ready to run Borg Backup..."
    # >>>Insert borg backup command here<<<
fi

関連情報