現在、私は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