Linux 시스템을 백업하는 방법

데이터 손실의 위험을 감수하지 마십시오. Linux 명령줄에서 중요한 데이터를 백업하십시오. 이를 위해 rsync 명령을 사용할 것이며 이를 위한 몇 가지 멋진 선택적 그래픽 인터페이스도 찾았습니다.

파일의 백업 복사본을 만드는 방법에는 여러 가지가 있습니다. 강력하고 유연하며 안정적인 데이터 보호 방법을 보여드리고 싶었습니다. 우리는 그것 때문에 rsync를 선택합니다 존경받는 알고리즘 소스 디렉토리와 대상 디렉토리의 파일 간의 차이를 계산합니다. 피할 수 있는 경우 전체 파일이 아니라 두 버전의 파일 간의 차이점만 전송됩니다.

이러한 효율성이 1990년대 중반 이후로 파일 복사 및 디렉터리 동기화를 수행하는 데 있어 탄탄한 실적과 결합될 때 rsync는 Linux 명령줄에서 백업을 생성하기 위한 완벽한 후보입니다.

또한 rsync의 프런트 엔드 역할을 하는 독립 소프트웨어 프로그램이 있습니다. 그들은 일부 사람들이 사용하기 더 쉽게 찾을 수 있는 rsync에 그래픽 사용자 인터페이스(GUI)를 제공합니다.

백업을 만드는 것이 더 간단하고 빠를수록 그렇게 할 가능성이 높아집니다.

외장 하드 드라이브와 함께 rsync 사용

데이터의 백업 복사본을 외장 하드 드라이브에 만들려면 하드 드라이브가 마운트되어 있어야 하고 액세스할 수 있어야 합니다. 쓸 수 있다면 rsync도 쓸 수 있습니다. 이 예에서는 SILVERXHD(“Silver eXternal Hard Drive”용)라는 외부 USB 하드 드라이브가 Linux 컴퓨터에 연결되어 있습니다. 운영 체제에 의해 자동으로 마운트되었습니다.

드라이브 경로를 알아야 합니다. 그놈에서 노틸러스 파일 브라우저를 열고 사이드바에서 드라이브 이름을 찾습니다.

외장 드라이브 이름 위에 마우스 포인터를 올리면 툴팁에 드라이브 경로가 표시됩니다.

이 예에서 툴팁은 외부 드라이브의 파일 시스템에 대한 마운트 지점이 “/media/dave/SILVERXHD”임을 알려줍니다.

파일 브라우저가 이 작업을 수행하지 않으면 외부 드라이브를 찾아 해당 위치에서 터미널 창을 엽니다. pwd 명령을 사용하여 터미널 창의 경로를 인쇄합니다.

소스 디렉토리에서 내용 복사

rsync를 사용하여 디렉토리 내용을 백업 대상에 복사하려면 다음 명령을 사용하십시오.

  Windows 사용자를 위한 최고의 Linux 배포판

-r(재귀) 옵션을 사용하면 rsync가 모든 중첩된 하위 디렉터리와 해당 내용을 복사합니다. “SILVERXHD”라는 단어의 끝에 슬래시 “/”가 있지만 스크린샷의 다음 줄로 줄 바꿈되었습니다.

rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/

파일 복사가 수행되고 명령줄 프롬프트로 돌아갑니다.

외부 USB 드라이브를 보면 Documents 디렉토리에 있는 디렉토리가 외부 드라이브의 루트에 복사된 것을 볼 수 있습니다.

ls

소스 디렉토리 및 해당 내용 복사

Documents 디렉토리와 그 내용을 외부 드라이브에 복사하려면 다음과 같이 명령줄의 “/home/dave/Documents” 끝에서 “/”를 제거하십시오.

rsync -r /home/dave/Documents /media/dave/SILVERXHD/

혼동을 피하기 위해 이 두 번째 명령이 실행되기 전에 이전에 복사한 두 개의 디렉토리를 외부 드라이브에서 제거했습니다.

두 번째 복사가 완료되도록 하고 외부 드라이브를 다시 살펴보면 Documents 디렉토리가 복사된 것을 볼 수 있습니다. 그 내용은 해당 디렉토리 내에 있습니다. 그들은 외부 드라이브의 루트에 없습니다.

특정 대상 디렉토리에 복사

대상 하드 드라이브의 특정 디렉터리에 복사하려면 디렉터리 이름을 대상 경로에 추가합니다. “/home/dave/Documents” 디렉토리의 내용을 외부 드라이브의 “backups”라는 디렉토리에 복사한다고 가정해 보겠습니다.

우리는 다음 명령으로 이것을 할 것입니다.

rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/backups/

외부 드라이브를 확인하면 백업 디렉토리가 생성되었음을 알 수 있으며 그 디렉토리 안에 “/home/dave/Documents” 디렉토리의 내용이 있습니다.

ls
ls backups

파일 소유권 및 권한 보존

-a(아카이브) 옵션을 사용하여 복사된 파일, 심볼릭 링크 및 특수 블록 파일에 대한 수정 날짜, 파일 소유권, 액세스 권한 등과 같은 파일 속성을 보존합니다.

rsync -ra /home/dave/Documents/ /media/dave/SILVERXHD/backups/

상세 모드 사용

-v(verbose) 옵션은 rsync가 복사되는 파일을 나열하도록 합니다.

rsync -rav /home/dave/Documents/ /media/dave/SILVERXHD/backups/

복사가 완료되면 백업 요약이 표시됩니다.

전송됨: 대상으로 전송된 바이트입니다.
수신됨: 호스트에서 수신된 바이트입니다.
바이트/초: 유효 전송 속도입니다.
전체 크기: rsync를 사용하지 않았다면 전송되었을 데이터의 크기를 나타냅니다. rsync의 후속 실행에서는 파일 차이만 전송합니다. 이 수치는 전송할 필요가 없는 데이터를 나타냅니다.
속도 향상: 전송해야 하는 데이터의 양과 존재하는 총 데이터 양 사이의 비율입니다. rsync가 모든 파일을 전체적으로 복사해야 하는 경우(예: 처음 실행할 때) 속도 향상은 1.0입니다. 다음에 rsync를 사용하면 전송이 최적화됩니다. 전체 파일이 아닌 파일 간의 차이점만 전송합니다. 변경 사항이 없는 파일은 무시됩니다. 속도 향상 수치는 전송해야 하는 소량의 데이터 대 파일의 총 크기 간의 비율을 나타냅니다.

  OpenSUSE Leap에서 새 Linux 커널 버전을 설치하는 방법

진행 옵션 사용

-P(진행률) 옵션을 사용하면 각 파일이 복사된 후 rsync가 작은 진행률 보고서를 생성합니다.

rsync -raP /home/dave/Documents/ /media/dave/SILVERXHD/backups/

제공된 정보는 복사된 각 파일 사이에서 볼 수 있습니다.

제공된 정보는 다음과 같습니다.

바이트 크기: 이 파일에 대해 전송된 데이터입니다.
백분율: 전송된 파일의 백분율입니다.
B/s: 데이터 전송 속도.
남은 시간: 이 파일을 전송하는 데 남은 예상 시간입니다.
xfr#: 지금까지 전송된 파일 수.
to-chk: 최적화 알고리즘에 의해 검사되고 검증될 남은 파일 수.

속도를 더하다

전송 속도를 높이려면 -z(압축) 옵션을 사용합니다. 이렇게 하면 전송 중인 파일이 압축되지만 파일은 압축되지 않은 상태로 대상 디렉터리에 저장됩니다.

압축 옵션은 많은 작은 파일을 포함하는 전송에 대해 상당한 이점을 제공하지 않습니다. 더 큰 파일 모음의 경우 의미 있는 방식으로 전송 시간을 줄일 수 있습니다.

여기에서도 –partial 옵션을 사용하고 있습니다. rsync는 네트워크 결함 또는 기타 중단으로 인해 부분적으로 전송된 파일을 삭제합니다. –partial 옵션은 rsync가 부분적으로 전송된 파일을 대상에 남겨두도록 합니다. rsync가 실행되는 순 시간은 부분적으로 전송된 파일의 일부를 다시 전송할 필요가 없습니다.

누군가가 부분적으로 전송된 파일을 완전히 전송된 파일로 착각할 위험이 있는 경우 이 옵션을 사용하지 않을 수 있습니다.

rsync -ravz  --partial /home/dave/Documents/ /media/dave/SILVERXHD/backups/

이 예에서 이점은 미미합니다.

속도 향상 비율은 200분의 2만큼 향상되었지만! 실제 시나리오에서는 속도 향상이 더 인상적입니다.

네트워크를 통한 rsync 사용

지금까지 우리는 외부 USB 드라이브를 대상으로 했습니다. 네트워크 위치를 백업 대상으로 사용하려면 명령줄에서 해당 위치에 대한 경로를 사용합니다. 이있다 네트워크 연결 저장 장치 (NAS) 이 기사가 연구된 네트워크의.

이전에 Nautilus의 해당 장치에 대한 연결 위로 마우스를 가져가서 NAS 경로를 식별하는 데 사용한 것과 동일한 트릭을 사용할 수 있습니다.

네트워크를 통해 백업하는 특별한 옵션은 없습니다. 이것들은 우리가 이미 사용한 모든 옵션입니다.

rsync -ravz  --partial /home/dave/Documents/ /media/dave/NAS/dave/backups/

출력 형식에는 차이가 없습니다.

당연히 Bytes/sec 수치가 크게 향상되었습니다.

다시 rsync를 실행하면 변경 사항이 없기 때문에 전송할 파일이 없지만 앞뒤로 전송되는 바이트가 여전히 있음을 알 수 있습니다. 대상의 파일 목록과 소스의 파일 목록을 비교하기 위해 전송해야 하는 데이터의 양입니다.

  Linux 명령줄에서 화면을 기록하는 방법

이 경우 속도 향상 비율이 훨씬 더 좋습니다. 실제로, 귀하의 성능 비율은 두 개의 유사 인공 판독값 사이 어딘가에 있을 것입니다.

SSH를 통해 rsync 사용

rsync는 SSH 연결을 통한 백업을 지원합니다. 명령줄에 사용자 계정 이름과 SSH 위치를 제공해야 합니다. 여기서는 네트워크 이름을 사용하고 있지만 IP 주소를 사용할 수도 있습니다.

SSH 연결 세부 정보와 원격 대상의 네트워크 경로 시작 사이에 “:”가 있습니다.

rsync -ravz  --partial /home/dave/Documents/ [email protected]:/home/dave/Backups/

원격 컴퓨터의 사용자 계정 암호를 묻는 메시지가 표시됩니다. 이것은 원본 컴퓨터의 암호가 아닙니다.

백업은 평소와 같이 완료됩니다. 보안 셸 연결에서 발생하는 암호화 및 암호 해독 때문에 처리량이 일반 네트워크 연결만큼 빠르지 않습니다.

백업 자동화

crontab 파일에 항목을 추가하여 자동 백업을 쉽게 생성할 수 있습니다.

crontab -e

매일 04:30에 실행되도록 자동 백업을 설정할 것입니다(물론 그 시간에 컴퓨터가 켜져 있는 경우). rsync 명령의 구문은 전혀 변경되지 않습니다.

Ctrl+O는 파일에 변경 사항을 기록하고 Ctrl+X는 nano 편집기를 닫습니다.

Rsync에 친근한 얼굴 넣기

명령줄에 익숙하지 않은 사람들은 rsync에 그래픽 사용자 인터페이스(GUI)를 배치하는 여러 프로그램 중 하나를 사용할 수 있습니다. 두 가지 좋은 예는 럭키백업 그리고 그리싱크. 이 두 프로그램 모두 사용자 인터페이스를 통해 많은 rsync 옵션을 선택할 수 있습니다.

Grsync 프로그램은 rync의 시각적 래퍼가 되는 데 중점을 둡니다. rsync 옵션에 대한 쉬운 액세스를 제공하고 제한된 새 기능 세트만 추가합니다.

Grsync 설정 대화 상자 중 하나,

luckyBackup 프로그램은 rsync를 위한 단순한 래퍼 그 이상입니다. 뒤에서 rsync를 사용하는 백업 프로그램입니다. 예를 들어, luckyBackup은 백업의 여러 “스냅샷”을 만들 수 있습니다. 그런 다음 모든 스냅샷에 있는 파일 버전으로 “롤백”할 수 있습니다.

luckyBackup 설정 대화 상자 중 하나입니다.

Grsync를 설치하려면

Ubuntu에 Grsync를 설치하려면 다음 명령을 사용하십시오.

sudo apt-get install grsync

Fedora에 Grsync를 설치하려면 다음 명령을 사용하십시오.

sudo dnf install grsync

Manaro에 Grsync를 설치하려면 다음 명령을 사용하십시오.

sudo pacman -Syu grsync

럭키백업을 설치하려면

Ubuntu에 luckyBackup을 설치하려면 다음 명령을 사용하십시오.

sudo apt-get install luckybackup

Fedora에 luckyBackup을 설치하려면 다음 명령을 사용하십시오.

sudo dnf install luckybackup

Manjaro에서는 다음에서 luckyBackup을 설치해야 합니다. 아치 사용자 저장소 (AUR). pamac 패키지 관리자를 사용하여 이 작업을 수행할 수 있습니다.

위험을 감수하지 말고 데이터를 자주 백업하십시오

백업은 절대적으로 중요합니다. 자주 백업하고 여러 위치에 백업하고 다른 미디어에 백업합니다. 설정이 완료되면 rsync가 이 모든 작업을 수행할 수 있습니다.