Raspberry Pi 백업을 ​​위한 완벽한 가이드

Raspberry Pi 백업을 ​​위한 완벽한 가이드

Raspberry Pi를 백업하는 것은 간단한 프로세스가 될 수 있습니다. 고급 백업 솔루션이 풍부함에도 불구하고 때로는 가장 간단한 방법이 가장 효과적인 것으로 판명됩니다. 이 가이드에서는 Raspberry Pi 환경의 신뢰할 수 있는 로컬 백업을 생성하는 데 이상적인 매우 효율적인 명령줄 도구인 rsync를 활용하는 방법을 보여드리겠습니다.

Raspberry Pi 백업에 Rsync를 사용하는 이점

Rsync(remote sync의 약자)는 Raspberry Pi 장치에 편리하게 미리 설치되어 있는 강력한 파일 동기화 및 전송 유틸리티입니다.

이 도구는 한 디렉토리에서 다른 디렉토리로 파일을 복사하는 데 뛰어나지만, 기본 파일 전송보다 훨씬 더 지능적으로 작동합니다. Rsync는 수정된 파일 섹션만 전송하여 시간과 시스템 리소스를 모두 최적화합니다. 이 기능은 자주 업데이트되는 대용량 파일을 백업할 때 특히 유용합니다.

남자 Rsync 라즈베리

저는 주로 rsync를 사용하여 Raspberry Pi의 중요한 데이터를 보호합니다. 예를 들어, 저는 기기에서 사진 갤러리 서버를 실행하고, rsync는 이러한 귀중한 이미지를 외부 드라이브에 효율적으로 백업하여 새 파일이나 수정된 ​​파일을 자동으로 식별하고 복사합니다.

전체 파일을 전송하는 다른 백업 유틸리티와 달리 rsync는 수정된 세그먼트에만 초점을 맞추어 백업 프로세스를 상당히 가속화하고 SD 카드의 마모를 줄입니다. 명령줄 인터페이스는 cron 작업으로 자동화하는 데 적합하며, 내장된 체크섬 기능은 백업의 무결성을 보장합니다. 또한 rsync의 가벼운 디자인은 백업이 진행 중이 아니면 Pi의 성능을 방해하지 않으며 SD 카드의 과도한 공간을 차지하지 않습니다.

이러한 기능 덕분에 rsync는 제가 가장 선호하는 백업 솔루션이 되었고, 안정적이고 효율적인 백업 전략을 찾는 많은 Raspberry Pi 사용자에게 훌륭한 옵션이 될 수 있습니다.

Raspberry Pi에서 Rsync를 사용하여 파일 및 디렉토리 백업

디렉토리를 백업하는 가장 쉬운 방법은 다음 명령을 사용하는 것입니다.

예를 들어, “/media/backup”에 위치한 외부 드라이브에 내 홈 디렉토리를 백업하려면 다음 명령을 사용합니다.

이 명령은 내 사진 라이브러리 데이터베이스를 안전하게 저장합니다.

Rsync 라즈베리 폴더 백업

명령 옵션에 대한 세부 내용은 다음과 같습니다.

  • -a파일 권한, 소유권, 타임스탬프를 보존하면서 보관 모드를 활성화합니다.
  • -v자세한 출력을 통해 복사 진행률을 모니터링할 수 있습니다.
  • --delete소스 디렉토리에 더 이상 존재하지 않는 파일을 백업에서 제거합니다.

Raspberry Pi 백업이 성공했는지 확인하세요

백업에 의존하기 전에 백업이 성공적으로 완료되었는지 확인하는 것이 중요합니다. 이를 수행하는 가장 쉬운 방법은 rsync로 드라이 런을 수행하는 것입니다. 이는 또는 -n를 사용하여 표시할 수 있습니다 --dry-run. 다음 명령을 실행합니다.

백업이 최신 상태이면 전송할 파일이 표시되지 않습니다.

Rsync Raspberry 백업 드라이 런

보다 포괄적인 검증을 위해 rsync 명령에 -cor --checksum옵션을 포함할 수 있습니다. 이 방법은 기본 타임스탬프 및 크기 검사에 비해 느리지만 체크섬을 생성하여 소스와 백업 간의 모든 파일이 동일하도록 보장합니다. 간단히 다음을 실행합니다.

가장 자세한 검증 방법은 diff명령을 사용하는 것으로, 소스와 백업 위치 간의 각 파일과 디렉토리를 비교합니다. 이를 위해 다음을 사용합니다.

-r옵션을 사용하면 diff가 모든 하위 디렉토리를 재귀적으로 검사할 수 있습니다. 출력이 나타나지 않으면 백업이 소스와 일치한다는 것을 의미합니다. 차이점이 발견되면 diff어떤 파일이 다르거나 누락되었는지 지정합니다.

Rsync를 사용하여 포괄적인 Raspberry Pi 백업 실행

어떤 경우에는 필수 폴더 몇 개만 백업하는 것보다 Raspberry Pi SD 카드 전체를 백업하는 것이 더 편리하고 안전할 수 있습니다.

rsync를 사용하여 Raspberry Pi의 전체 백업을 수행하려면 백업 대상이 필요합니다. 즉, 다른 SD 카드나 전체 시스템을 저장할 수 있는 충분한 용량의 외장 드라이브가 필요합니다. 모든 파일 권한과 속성을 정확하게 유지하려면 백업 드라이브가 ext4와 같은 Linux 호환 파일 시스템으로 포맷되었는지 확인하세요.

전체 Raspberry Pi 설정을 백업하는 데 가장 어려운 측면은 특수 시스템 디렉토리와 파일을 적절하게 관리하는 것입니다. 제 경험에 따르면, 가장 좋은 방법은 백업할 필요가 없거나 복원하면 문제가 될 수 있는 시스템 디렉토리를 제외하는 것입니다. “backup-exclude.txt”라는 파일을 만들고 다음 시스템 디렉토리를 제외 항목으로 포함할 수 있습니다.

  • /proc/* # 런타임 프로세스 정보
  • /sys/* # 커널 및 시스템 세부 정보
  • /dev/* # 장치 파일
  • /tmp/* # 임시파일
  • /run/* # 런타임 데이터
  • /mnt/* # 마운트 포인트
  • /media/* # 이동식 미디어
  • /home/pi/.cache/* # 사용자 캐시 파일
  • /lost+found # 파일 시스템 복구 디렉토리

이러한 제외 항목을 설정하면 불필요한 응용 프로그램을 닫고 다음 백업 명령을 실행할 수 있습니다.

-x옵션은 rsync가 여러 파일 시스템 계층 사이를 탐색하지 못하게 하여 시스템 폴더와 관련된 문제가 발생할 수 있습니다. 이 -h옵션은 rsync가 파일 크기와 전송 속도를 사용자에게 더 접근하기 쉬운 형식으로 표시하도록 합니다.

자동화된 Rsync 백업 일정

수동 전체 백업이 가치 있지만, 저는 Linux의 내장 cron 스케줄링 시스템을 통해 자동화하는 것을 선호합니다. 이를 설정하려면 홈 디렉토리에 다음 내용으로 “backup-pi.sh”라는 스크립트를 만듭니다.

스크립트를 실행 가능하게 만든 다음 , 다음 줄을 입력하고 추가하여 매일 자정에 백업을 실행하도록 chmod +x backup-pi.shcron을 사용하여 일정을 잡습니다 .crontab -e

Cron 라즈베리 백업

Rsync Raspberry Pi 백업을 ​​복원하는 방법

개별 파일이나 디렉토리를 복원하는 것은 간단한 프로세스입니다. rsync 명령에서 소스와 대상을 전환하기만 하면 됩니다. 예를 들어, 백업에서 사진 라이브러리를 복원하려면 다음과 같이 하십시오.

완전한 시스템 복구를 위해서는 SD 카드에 새로 설치된 Raspberry Pi OS가 필요합니다. 새 SD 카드에 Raspberry Pi OS를 새로 설치하여 시작합니다. 그런 다음 새 SD 카드로 Raspberry Pi를 부팅하고 초기 설정을 마칩니다. 백업 드라이브를 Pi에 연결하고 모든 것이 제대로 마운트되면 rsync를 사용하여 백업을 복구할 수 있습니다.

복구가 완료되면 Pi를 재부팅하여 복구된 모든 파일이 올바르게 로드되었는지 확인하는 것이 좋습니다. 또한 필수 서비스와 구성이 예상대로 작동하는지 확인합니다.

복원 후 어떤 애플리케이션이 제대로 작동하지 않으면 해당 로그 파일(일반적으로 /var/log/에 있음)에서 권한 관련 문제를 확인하세요. 다음을 실행해야 할 수도 있습니다.

홈 디렉토리 파일의 소유권을 해결합니다. rsync로 데이터를 복원하는 것은 백업을 만드는 것만큼 간단합니다. 명령에서 소스 및 대상 경로를 반대로 바꾸기만 하면 됩니다.

rsync의 간단한 명령줄 접근 방식을 좋아하지만, 터미널을 사용하지 않으려는 사람들을 위해 사용할 수 있는 훌륭한 GUI 대안이 많이 있습니다. 예를 들어, Syncthing을 사용하면 다양한 시스템에서 여러 폴더를 동기화할 수 있고, Timeshift는 사용자 친화적인 인터페이스로 시스템 스냅샷 기능을 제공합니다. 어떤 도구를 선택하든 중요한 요점은 Raspberry Pi의 정기적인 백업을 수행하여 중요한 데이터와 시스템 설정을 보호하는 것입니다.

모든 이미지는 David Morelo의 제공입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다