シェルスクリプトを初めて試しました。 Rsyncを使用してあるサーバーから別のサーバーにいくつかのフォルダーを徐々にコピーしたいが、link-destオプションを使用して変更されていないファイルへのハードリンクを作成します。 「Editshare_Backups」フォルダ内のフォルダ構造のファイルサイズを確認したところ、ファイルサイズが互いに似ていることがわかりました。サイズを計算すると、2番目のハードリンクが計算されないというdu -sh *
印象を受けたため、 "Editshare_Backups"フォルダ内を使用しています。du
stat -f %l
最初のフルバックアップで特定のファイルを使用しましたが、ハードリンクは1つしか表示されませんでした。
ハードリンクが確立されているかどうかを確認する他のオプションは何ですか?
私のシェルスクリプトのコードは次のとおりです。
#!/opt/bin/bash
#Rsync Editshare Database Backups Script
#Todays date
TODAY=`date -I`
#Yesterdays date
PREVIOUS_DAY=`date -I`
#The source directory:
SRC1="/RAIDS/RAID_2"
SRC2="/etc"
SRC3="/var/lib"
#The target directory:
TRG="/volume1/Editshare_Backups/$TODAY"
#The link destination directory:
LNK="/volume1/Editshare_Backups/$PREVIOUS_DAY"
#The rsync options:
OPT="-avh -e ssh --delete --progress --link-dest=$LNK"
#Log file:
LOG="/volume1/Editshare_Backups/Logs/Log_$TODAY.log"
#Execute the backup
rsync $OPT [email protected]:$SRC1 :$SRC2 :$SRC3 $TRG >> $LOG 2>&1
答え1
rsyncがハードリンクであることを確認する最善の方法は、gpartedなどを使用してディスク使用量を調べて、大規模バックアップが作成されていることを確認することです。そうしないでください。 --link-dest オプションが言うように動作します。ハードリンクが物理ディスク上の同じデータブロックへのリンクである場合、ハードリンクはシステムの残りの部分と多くのプログラムにそのデータのコピーとして表示されます。