일부 파일이 포함된 폴더가 있습니다. 매일 백업해야 해요.
저는 Debian과 zsh를 사용하고 있으며 zip
이 도구를 사용하여 백업하고 있습니다.
때때로 폴더를 업데이트하고, 새 파일을 추가하고, 오래된 파일을 삭제하고, 오래된 파일을 업데이트합니다.
zip이 zip 파일을 자동으로 업데이트할 수 있다는 것을 알았습니다. 예를 들어:
zip -r backup.zip my-folder/
처음 실행 하면 모든 파일이 추가됩니다.
하지만 동일한 명령을 다시 실행하면 zip -r backup.zip my-folder/
모든 파일이 업데이트됩니다.
믿을만한가요? 아니면 rm
폴더를 패키징하기 전에 매번 파일을 압축해야 합니까?
답변1
~에 따르면man zip
zip will replace identically named entries in the zip archive
따라서 실제로 의 기존 파일을 대체한다고 zip
표시 될 때마다 와 비슷 하지만 그렇지 않습니다 . 아래 예를 확인하세요.updating: my-folder/<file> (in=0) (out=0) (stored 0%)
archive
Full backup
Incremental or Defferential Backup
# du -b dir/*
1073741824 dir/file.txt
2 dir/x
0 dir/xx
0 dir/xy
0 dir/y
0 dir/z
# time zip -rv dir.zip dir
adding: dir/ (in=0) (out=0) (stored 0%)
adding: dir/xy (in=0) (out=0) (stored 0%)
adding: dir/x (in=2) (out=2) (stored 0%)
adding: dir/file.txt ...................................................................................................... (in=1073741824) (out=1042051) (deflated 100%)
adding: dir/xx (in=0) (out=0) (stored 0%)
adding: dir/y (in=0) (out=0) (stored 0%)
adding: dir/z (in=0) (out=0) (stored 0%)
total bytes=1073741826, compressed=1042053 -> 100% savings
real 0m10.990s
user 0m10.827s
sys 0m0.160s
# dd if=/dev/zero of=dir/file.txt count=1040 bs=1048576
1040+0 records in
1040+0 records out
1090519040 bytes (1.1 GB) copied, 8.95635 s, 122 MB/s
# du -b dir/file.txt
1090519040 dir/file.txt
이제 파일이 dir/file.txt
추가 바이트로 업데이트되었습니다. 이제 zip
다시 실행 해 보겠습니다 .
# time zip -rv dir.zip dir
updating: dir/ (in=0) (out=0) (stored 0%)
updating: dir/xy (in=0) (out=0) (stored 0%)
updating: dir/x (in=2) (out=2) (stored 0%)
updating: dir/file.txt ........................................................................................................ (in=1090519040) (out=1058320) (deflated 100%)
updating: dir/xx (in=0) (out=0) (stored 0%)
updating: dir/y (in=0) (out=0) (stored 0%)
updating: dir/z (in=0) (out=0) (stored 0%)
total bytes=1090519042, compressed=1058322 -> 100% savings
real 0m11.246s
user 0m11.021s
sys 0m0.223s
이는 dir/file.txt
동일한 이름의 가장 최근에 수정된 파일로 대체됩니다. 이는 파일에 새 콘텐츠가 없는 경우에도 마찬가지입니다. 전체 백업, 증분 백업, 차등 백업 등 다양한 백업 유형이 있습니다. Incremental and Differential
이는 일반적으로 데이터에 대한 백업 메커니즘이 설계되고 구현된 경우 발생합니다.
이 경우 @kusalananda가 언급했듯이 보다 일반적인 백업 도구 사용을 고려하면 좋을 것입니다.
예를 들어 rsync
도움이 될 수 있습니다.
또한 매번 기존 아카이브 파일에 대해 명령을 실행할 rm
필요가 없습니다.zip
지속하고 싶다면 zip
그냥 걸어가세요 zip's
add, update, freshen
. 예시 Update
사례:
# time zip -ruv dir.zip dir
zip diagnostic: dir/ up to date
zip diagnostic: dir/xy up to date
zip diagnostic: dir/x up to date
zip diagnostic: dir/xx up to date
zip diagnostic: dir/y up to date
zip diagnostic: dir/z up to date
updating: dir/file.txt .......................................................................................................... (in=1111490560) (out=1078679) (deflated 100%)
total bytes=1111490562, compressed=1078681 -> 100% savings
real 0m11.351s
user 0m11.178s
sys 0m0.171s
다시 실행하는 경우 zip
:
# time zip -ruv dir.zip dir
zip diagnostic: dir/ up to date
zip diagnostic: dir/xy up to date
zip diagnostic: dir/x up to date
zip diagnostic: dir/file.txt up to date
zip diagnostic: dir/xx up to date
zip diagnostic: dir/y up to date
zip diagnostic: dir/z up to date
real 0m0.003s
user 0m0.002s
sys 0m0.001s