차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 다음 판 | 이전 판 | ||
| linuxfromscratch:12.4:linux_from_scratch:backup_and_restore [2026/03/02 00:21] – 만듦 baecy | linuxfromscratch:12.4:linux_from_scratch:backup_and_restore [2026/03/02 03:05] (현재) – baecy | ||
|---|---|---|---|
| 줄 10: | 줄 10: | ||
| </ | </ | ||
| </ | </ | ||
| - | - 준비 사항: /etc/fstab 확인, LFS 파티션 마운트, tar, pv, xz 설치 확인 | + | - 준비 사항: /etc/fstab 확인, LFS 파티션 마운트, tar, pv, xz 설치 확인 |
| - | < | + | |
| export LFS=/ | export LFS=/ | ||
| - | export | + | export |
| - | grep $LFS / | + | |
| mountpoint -q $LFS || sudo mount $LFS # 마운트 상태 확인 필요시 마운트 | mountpoint -q $LFS || sudo mount $LFS # 마운트 상태 확인 필요시 마운트 | ||
| + | mountpoint -q $LFS_DEPOT | ||
| for prog in tar xz pv; do # tar, xz, pv 설치 확인 | for prog in tar xz pv; do # tar, xz, pv 설치 확인 | ||
| - | if command -v " | + | if command -v " |
| $prog --version | head -n 1 | $prog --version | head -n 1 | ||
| else | else | ||
| 줄 24: | 줄 23: | ||
| done | done | ||
| </ | </ | ||
| - | - Backup | + | - Backup |
| - | < | + | |
| cd $LFS | cd $LFS | ||
| + | sudo -s | ||
| tar -cp --numeric-owner \ | tar -cp --numeric-owner \ | ||
| --exclude=' | --exclude=' | ||
| - | xz -9 --threads=$(nproc) --memory=80% -vv > "${WAREHOUSE}/ | + | xz -9 --threads=$(nproc) --memory=80% -vv > "${LFS_DEPOT}/ |
| </ | </ | ||
| - | + | | |
| - | | + | |
| - | < | + | |
| export LFS=/ | export LFS=/ | ||
| export WAREHOUSE=/ | export WAREHOUSE=/ | ||
| cd $LFS | cd $LFS | ||
| sudo tar -xpvJf ${WAREHOUSE}/ | sudo tar -xpvJf ${WAREHOUSE}/ | ||
| - | sudo mkdir -pv {dev,pro,sys,run} | + | sudo mkdir -pv {dev,proc,sys,run} |
| </ | </ | ||
| - /etc/fstab 확인 | - /etc/fstab 확인 | ||
| + | |||
| + | === 정리 필요 === | ||
| + | 복구이후 tar의 검증 기능을 이용한 확인방법 | ||
| + | < | ||
| + | # 1. 전체 파일 개수 파악 (문자열 -> 숫자 처리) | ||
| + | TOTAL_FILES=$(tar -tvf " | ||
| + | |||
| + | # 2. 1% 진행률을 위한 인터벌 역산 (정수 나눗셈) | ||
| + | # 파일이 100개 미만일 경우를 대비해 최소값 1 설정 | ||
| + | INTERVAL=$(( TOTAL_FILES / 100 )) | ||
| + | if [ " | ||
| + | |||
| + | # 3. 사용자에게 정보 출력 | ||
| + | echo " | ||
| + | |||
| + | # 4. 검증 실행 (pv -s 100으로 백분율 동기화) | ||
| + | # tar가 INTERVAL만큼 처리할 때마다 점(.)을 찍고, pv가 이를 100개까지 카운트 | ||
| + | tar -df " | ||
| + | pv -p -l -s 100 > /dev/null | ||
| + | |||
| + | echo " | ||
| + | </ | ||
| + | tar 검증 과장에 예상 시간 추가 (위의 내용에 통합 필요) | ||
| + | < | ||
| + | # 1. 실제 대상 디렉터리($LFS)에 테스트 공간 확보 | ||
| + | TEST_DIR=" | ||
| + | mkdir -p " | ||
| + | |||
| + | # 2. 실제 디스크에 쓰기 (I/O 쓰기 속도 포함) | ||
| + | dd if=/ | ||
| + | |||
| + | # 3. 압축/ | ||
| + | START_TIME=$(date +%s.%N) | ||
| + | xz -9 --threads=$(nproc) " | ||
| + | END_TIME=$(date +%s.%N) | ||
| + | |||
| + | # 4. 결과 계산 및 정리 (테스트 파일 삭제 필수) | ||
| + | SEC_PER_100MB=$(echo " | ||
| + | rm -rf " | ||
| + | </ | ||
| + | 설정, 로직 , 함수 분리후 prefix_ 로 구분 | ||
| <WRAP group> | <WRAP group> | ||
| ----- | ----- | ||
| </ | </ | ||