CodeGym /행동 /Docker SELF /디스크 포맷팅, 마운트, `rsync`로 백업하기

디스크 포맷팅, 마운트, `rsync`로 백업하기

Docker SELF
레벨 6 , 레슨 6
사용 가능

디스크 포맷팅, 마운트, rsync로 백업하기

1. 1단계: 새 디스크 포맷

파일 시스템에 대한 여행의 실습 부분에 오신 걸 환영해! 오늘은 우리가 이전 강의에서 배운 포맷, 마운트 및 백업 내용을 모두 합쳐 볼 거야. 그리고, 만약 상사의 문서가 들어 있는 USB를 실수로 포맷해버린다면, 어떻게 복구해야 할지 확실히 알게 될 거야. 아니면, 최소한 다른 직업으로 전환할 준비가 되어있을지도 몰라.

시나리오

컴퓨터에 새 디스크를 추가했다고 상상해봐. 이 디스크는 아직 아무것도 없는 상태고, 시스템에서 작업할 준비도 안 되어 있어. 이제 이 디스크를 포맷하는 작업을 해보자.

작업 순서:

1.1 연결된 장치 확인

먼저 새 디스크가 어디 있는지 알아내야 해. lsblk 명령어를 사용해:

lsblk

만약 모든 것이 제대로 연결됐다면, 다음과 비슷한 결과를 보게 될 거야:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk 
├─sda1   8:1    0   50G  0 part /
├─sda2   8:2    0   50G  0 part /home
sdb      8:16   0  500G  0 disk

여기서 sdb가 우리의 새로운 디스크야. 아직 파티션이 없어.

1.2 디스크에 파일 시스템 생성

ext4 파일 시스템이 적당하다고 가정해보자. 이를 생성하려면 mkfs를 사용해:

sudo mkfs.ext4 /dev/sdb

명령을 실행한 후 시스템은 디스크와 작업할 준비가 될 거야. 포맷 작업은 디스크의 모든 데이터를 삭제한다는 점을 기억해둬. 그래서 만약 이 순간 상사의 디스크를 잘못 연결한 상태라면ㅡ그리고 포맷하려고 한다면ㅡ멈춰. 지금 당장.


2. 2단계: 새 디스크 마운트하기

이제 새로 포맷된 디스크를 파일 시스템에 연결하자.

2.1 마운트 지점 생성하기

디스크가 연결될 위치가 필요해. 보통은 폴더야. 예를 들어, /mnt에 폴더를 만들어보자:

sudo mkdir /mnt/newdisk

2.2 디스크 마운트하기

디스크를 시스템에 연결하자:

sudo mount /dev/sdb /mnt/newdisk

모든 게 제대로 작동하는지 확인하려면 df 명령어를 사용해봐:

df -h

목록에서 /mnt/newdisk와 디스크를 확인할 수 있을 거야.

2.3 자동 마운트 설정하기

매번 디스크를 수동으로 입력하지 않으려면, /etc/fstab 파일에 추가해야 해. 먼저 blkid를 사용해서 장치의 UUID를 알아내자:

sudo blkid /dev/sdb

출력은 대략 이런 모습일 거야:

/dev/sdb: UUID="abcd-1234-efgh-5678" TYPE="ext4"

이 문자열을 /etc/fstab에 추가하자:

UUID=abcd-1234-efgh-5678 /mnt/newdisk ext4 defaults 0 2

이제 시스템을 시작할 때마다 디스크가 자동으로 마운트될 거야.


3. 3단계: 데이터 아카이브

디스크에 /mnt/newdisk/data 폴더가 있다고 가정하고, 백업 전에 이 폴더를 아카이브하고 압축하려고 해.

3.1 tar를 사용하여 아카이브 생성

data 폴더의 아카이브를 생성해 보자:

tar -cvf data_backup.tar /mnt/newdisk/data

3.2 gzip을 사용하여 아카이브 압축

생성된 아카이브를 압축해 보자:

gzip data_backup.tar

이제 data_backup.tar.gz 파일을 가지고 있어. 이 파일은 더 작고 이동하기에 편리해.


4. 4단계: rsync를 사용한 백업

이제 우리는 백업을 할 준비가 되었어. rsync를 사용해서 데이터를 다른 서버나 디스크의 다른 장소로 이동시키자.

4.1 로컬 백업

만약 data 폴더를 다른 디렉토리로 백업하려고 한다면, 이렇게 하면 돼:

rsync -av /mnt/newdisk/data /mnt/backup/

옵션 설명:

  • -a 아카이브 모드를 활성화하며, 파일 권한과 구조를 유지합니다.
  • -v 자세한 출력을 활성화합니다.

4.2 원격 서버로 백업

데이터를 서버로 전송해야 할 때는 다음 명령어를 사용해봐:

rsync -av /mnt/newdisk/data username@remote_server:/backup/

username을 서버의 사용자 이름으로, remote_server를 서버 주소로 바꾸는 거 잊지 마.


5. 5단계: scp를 사용한 간단한 백업

가끔은 scp를 사용하는 것이 가장 간단할 때가 있어. 예를 들어, 우리가 아카이브를 서버로 직접 전송하고 싶을 때:

scp data_backup.tar.gz username@remote_server:/backup/

이 명령어는 파일 data_backup.tar.gz를 원격 서버의 /backup 폴더로 복사할 거야.


6. 6단계: 전체 프로세스가 제대로 작동하는지 확인하기

다음은 우리가 구현한 간단한 시나리오 계획이야:

  1. 새 디스크에 파일 시스템을 생성했어.
  2. 디스크를 마운트하고 자동 마운트를 설정했어.
  3. 폴더에서 데이터를 아카이브하고 압축했어.
  4. rsyncscp를 사용하여 데이터를 백업했어.

이제 복사된 데이터가 제대로 있는지 확인해봐. 대상 서버에서 data_backup.tar.gz를 풀어보자:

gunzip data_backup.tar.gz
tar -xvf data_backup.tar

데이터가 다시 여기 있어, 멀쩡하고 문제없어. 이제 안심해도 돼.


7. 특징 및 발생 가능한 오류

  • 만약 device or resource busy 같은 메시지가 마운트 해제할 때 나타난다면, 해당 장치가 프로세스에 의해 사용 중이 아닌지 확인해봐. 이때 fuser를 사용해:

    fuser -m /mnt/newdisk
    
  • /etc/fstab을 잘못 설정하면 시스템이 부팅되지 않을 수도 있어. 복구 모드를 사용하거나 변경 사항을 미리 테스트해봐:

    sudo mount -a
    
  • rsync를 사용해서 백업할 때, 디렉토리를 동기화하며 대상 쪽의 불필요한 데이터를 삭제하려면 --delete 옵션을 꼭 기억해.

이제 넌 디스크를 자신 있게 관리하고, 마운트하며, 데이터를 백업해서 안전하게 지킬 수 있는 지식을 갖췄어. 그리고 제일 중요한 건 — 왜 새 하드디스크를 포맷하고 있는지, 책상 위에 새로운 하드디스크가 있는 이유를 전문가처럼 자신 있게 설명할 수 있다는 거야. 😉

1
Опрос
리눅스에서의 디바이스 작업,  6 уровень,  6 лекция
недоступен
리눅스에서의 디바이스 작업
리눅스에서의 디바이스 작업
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION