쉘 스크립팅을 처음 시도했습니다. Rsync를 사용하여 한 서버에서 다른 서버로 일부 폴더를 점진적으로 복사하려고 하지만 link-dest 옵션을 사용하여 수정되지 않은 파일에 대한 하드 링크를 만듭니다. "Editshare_Backups" 폴더에 있는 폴더 구조 파일 크기를 확인했을 때 파일 크기가 서로 비슷한 것으로 나타났습니다. 크기를 계산할 때 두 번째 하드 링크가 계산되지 않는다는 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 옵션이 말한 대로 작동합니다. 하드 링크가 실제 디스크에 있는 동일한 데이터 블록에 대한 링크인 경우 하드 링크는 시스템의 나머지 부분과 많은 프로그램에 해당 데이터의 복사본으로 나타납니다.