현재 저는 cron 스크립트를 사용하여 백업하려는 디렉터리에 대해 매시간 Borg 아카이브를 생성합니다. 그러나 이것이 완전히 이상적인 것은 아닙니다. 이상적으로는 파일 시스템의 해당 부분이 활성화된 동안 한 시간에 한 번 이상 백업을 생성하고 싶습니다. 반대로 때로는 디렉토리 중 하나가 한 번에 몇 주 동안 변경되지 않은 상태로 유지될 수 있습니다. 따라서 매시간 아카이브를 만드는 것은 단지 공간 낭비일 뿐이며 수동으로 일부를 계속 닫고 열고 싶지 않습니다.
내 검색에 따르면 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