1

rsync で bash スクリプトを使用して、毎日および毎週のバックアップを作成しています。要するに、それがどのように機能するか:

  • スクリプトは、日と週の変数を設定します。
  • 現在の日のフォルダーが空になります:rm -rf /path/to/$currentday/*
  • 前日のコンテンツが当日にコピーされます (ハードリンク):cp -ral /path/to/$previousday/* /path/to/$currentday/
  • 次に、スクリプトは行われた変更を同期します。rsync -tru --progress /path/to/SOURCE/* /path/to/$currentday/

これは、WAN 経由で 1 つのストレージ デバイスから別のストレージ デバイスにプルされています。会社が成長しているため、スクリプトを実行するたびに、実際に WAN 経由で送信されるデータの量を監視する必要があります。

フォルダーを計算し、$currentday変更されていない (まだハードリンクされている) ファイルを除外する方法はありますか?

または、送信中のファイルをログに記録する行をスクリプトに追加しますか?

私はインターネットを検索してきましたが、残念ながら有用なものは見つかりませんでした.

これを私と共有してくれる人はいますか?

4

1 に答える 1

0

duハードリンクのサイズを一度だけカウントできる機能があることに気付きました。この手順をテストします。

mkdir 1 2
cd 1
dd if=/dev/zero of=f1 bs=1024 count=1024
dd if=/dev/zero of=f2 bs=1024 count=2048
cd ../2
ln ../1/f1
cp ../1/f2 .
cd ..
du -shc 1 2
du -shc 2 1

2 番目のフォルダーでは、以前に使用されたハードリンクのサイズが考慮されていないことがわかります。おそらく、このアプローチは何らかの助けになるでしょう。

于 2016-01-28T11:11:15.437 に答える