소개
이 실습에서는 tar(tape archive) 명령줄 유틸리티를 사용하여 Linux 환경에서 파일 시스템 백업을 생성하고 복구하는 기본적인 과정을 배웁니다. 주요 목표는 사용자 권한 관리 및 파일 아카이브 처리를 포함한 필수 시스템 관리 작업에 대한 실무 경험을 쌓는 것입니다. 사용자 데이터가 포함된 /home 디렉토리와 같이 시스템적으로 중요한 디렉토리에 접근하고 백업하기 위해, 필요한 경우 sudo 명령어를 사용하여 관리자 권한으로 작업을 수행하게 됩니다.
이 실습은 관리 작업을 위해 sudo 권한을 가진 기본 labex 사용자 계정을 사용하는 실제 워크플로우를 안내합니다. 전체 /home 디렉토리를 압축된 아카이브로 생성하고 성공적으로 생성되었는지 확인합니다. 복구 시나리오를 시뮬레이션하기 위해 임시 디렉토리인 /tmp로 이동하여 백업 아카이브의 내용을 추출합니다. 마지막으로 파일과 디렉토리 구조가 새 위치에 올바르게 복구되었는지 확인하여 백업 및 복구 프로세스의 무결성을 검증합니다.
현재 환경 이해하기
이 단계에서는 현재 환경에 대해 알아보고 관리 작업을 위해 sudo를 사용하는 방법을 배웁니다. labex 사용자는 sudo(superuser do) 를 사용하여 승인된 권한으로 명령을 실행할 수 있는 능력이 있으며, 이를 통해 root 사용자 계정으로 전환하지 않고도 관리 작업을 수행할 수 있습니다.
sudo를 사용하는 것은 보안상의 모범 사례입니다. 사용자 컨텍스트를 유지하면서 특정 명령에 대해 일시적으로 승인된 권한을 제공하기 때문입니다. 이 방식은 root 사용자로 완전히 전환하는 것보다 안전하며, 실수로 위험한 명령을 실행할 위험을 줄여줍니다.
먼저 whoami와 pwd(print working directory) 명령어를 실행하여 현재 사용자 ID 와 위치를 확인해 보겠습니다.
사용자 확인:
whoami
출력 결과는 labex여야 합니다:
labex
다음으로 현재 디렉토리를 확인합니다:
pwd
출력 결과에 labex 사용자의 프로젝트 디렉토리가 표시되어야 합니다:
/home/labex/project
관리자 권한이 필요한 간단한 명령어를 실행하여 sudo 권한을 테스트할 수 있습니다. 보통 승인된 권한이 필요한 /root 디렉토리를 확인해 보겠습니다:
sudo ls /root
이 명령어가 성공적으로 실행되면 관리 작업을 수행하는 데 필요한 sudo 권한이 있음을 증명하는 것입니다. sudo 명령어는 파일 시스템의 제한된 영역에 접근하는 데 필요한 권한을 일시적으로 부여합니다.
이제 환경과 sudo 기능을 이해했으므로 다음 단계에서 백업을 생성할 준비가 되었습니다.
/home 디렉토리의 백업 아카이브 생성
이 단계에서는 sudo와 함께 tar 명령어를 사용하여 /home 디렉토리의 백업을 생성합니다. tar(tape archiver) 유틸리티는 Linux 에서 아카이브 파일을 생성, 조회 및 추출하기 위한 표준 도구입니다. 아카이브는 여러 개의 다른 파일과 디렉토리를 포함하는 단일 파일로, 저장과 이동을 용이하게 해줍니다.
현재 labex 사용자로 로그인되어 있으며, 현재 작업 디렉토리는 /home/labex/project입니다. 사용자 계정에서 접근 가능한 홈 디렉토리에 백업 파일을 생성할 것입니다.
사용할 명령어는 sudo tar -cvf ~/backup.tar /home입니다. 옵션을 자세히 살펴보겠습니다:
sudo: 다른 사용자가 소유한 파일을 포함하여/home디렉토리의 모든 파일을 읽는 데 필요한 권한을 부여합니다.-c(create):tar에게 새 아카이브를 생성하도록 지시합니다.-v(verbose): 아카이브에 추가되는 각 파일을 목록으로 보여줍니다. 작업 진행 상황을 확인하는 데 유용합니다.-f(file): 아카이브의 파일 이름을 지정할 수 있게 합니다. 아카이브 이름이 바로 뒤에 와야 합니다. 이 실습에서는~/backup.tar입니다.~는 홈 디렉토리 (/home/labex) 를 나타내는 약어입니다./home: 백업하려는 소스 디렉토리입니다.
이제 터미널에서 명령어를 실행하여 백업 아카이브를 생성합니다:
sudo tar -cvf ~/backup.tar /home
-v 옵션을 사용했으므로 파일들이 backup.tar 아카이브에 추가됨에 따라 화면에 긴 파일 목록이 스크롤되는 것을 볼 수 있습니다. 출력 결과는 /home 디렉토리 내의 모든 파일을 나열하며 다음과 유사하게 나타납니다:
tar: Removing leading `/' from member names
/home/
/home/labex/
/home/labex/.bashrc
/home/labex/.profile
/home/labex/.zshrc
/home/labex/project/
/home/labex/.zsh_history
...
tar: Removing leading '/' from member names라는 메시지는 정상입니다. 이는 tar가 이식성을 위해 지정된 디렉토리를 기준으로 아카이브 내부에 상대 경로로 저장하고 있음을 의미하며, 이는 표준적인 관례입니다.
다음 단계에서는 backup.tar 파일이 성공적으로 생성되었는지 확인합니다.
backup.tar 파일 생성 확인
이 단계에서는 이전 단계에서 backup.tar 아카이브가 성공적으로 생성되었는지 확인합니다. 백업과 같은 중요한 작업을 수행한 후에는 예상되는 출력 파일이 존재하는지 확인하는 것이 항상 좋은 습관입니다.
홈 디렉토리 (~/backup.tar) 에 백업 파일을 생성했으므로 홈 디렉토리를 확인해야 합니다. 파일을 확인하는 가장 간단한 방법은 전체 경로와 함께 ls(list) 명령어를 사용하거나 홈 디렉토리로 이동하는 것입니다.
ls 명령어를 실행하여 홈 디렉토리를 확인합니다:
ls ~
이 명령어는 홈 디렉토리의 모든 파일과 디렉토리를 나열합니다. 출력 결과에서 backup.tar 파일을 볼 수 있어야 합니다:
backup.tar
또는 전체 경로를 사용하여 파일을 직접 확인할 수도 있습니다:
ls -l ~/backup.tar
출력 결과는 다음과 유사할 것입니다:
-rw-r--r-- 1 root root 10240 <Date> <Time> /home/labex/backup.tar
이 상세 목록을 통해 파일이 존재하고 크기가 0 이 아님을 확인할 수 있으며, 이는 백업 아카이브에서 기대하는 결과입니다. sudo를 사용하여 생성했기 때문에 파일 소유자는 root이지만, 접근 가능한 홈 디렉토리에 저장되어 있음을 유의하십시오.
이제 백업을 성공적으로 생성하고 확인했으므로, 다음 단계는 복구 시나리오를 시뮬레이션하는 것입니다.
복구를 위해 /tmp 디렉토리로 이동
이 단계에서는 현재 디렉토리를 /tmp로 변경합니다. 백업 복구를 연습할 때는 먼저 중립적인 위치에 파일을 추출하는 것이 가장 좋습니다. 이렇게 하면 기존 파일을 실수로 덮어쓰는 것을 방지하고, 최종 목적지로 옮기기 전에 복구된 데이터를 검사할 수 있습니다. /tmp 디렉토리는 임시 파일을 위한 Linux 시스템의 표준 위치이며 이 목적에 완벽합니다.
Linux 파일 시스템에서 디렉토리 사이를 이동하려면 cd(change directory) 명령어를 사용합니다. 현재 /root 디렉토리에 있습니다.
/tmp 디렉토리로 이동하려면 다음 명령어를 실행하십시오:
cd /tmp
명령어를 실행한 후 터미널 프롬프트가 다르게 보이지 않을 수도 있지만, 파일 시스템 내의 위치는 변경되었습니다. 현재 디렉토리의 전체 경로를 표시하는 pwd(print working directory) 명령어를 사용하여 새 위치를 확인할 수 있습니다.
pwd
출력 결과에서 현재 /tmp에 있음을 확인해야 합니다:
/tmp
이제 /tmp 디렉토리에 있으므로 이전에 생성한 backup.tar 아카이브의 내용을 추출할 준비가 되었습니다.
현재 디렉토리에 백업 아카이브 추출
이 단계에서는 backup.tar 파일의 내용을 현재 디렉토리인 /tmp에 추출합니다. 이 프로세스는 종종 백업에서 "복구"하는 것이라고 불립니다. 다시 tar 명령어를 사용하지만, 추출을 수행하기 위해 다른 옵션을 사용합니다.
현재 /tmp 디렉토리에 있습니다. 백업 파일인 backup.tar는 홈 디렉토리 (/home/labex) 에 위치해 있습니다. 따라서 명령어를 실행할 때 아카이브 파일의 전체 경로를 제공해야 합니다.
아카이브를 추출하는 명령어는 tar -xvf ~/backup.tar입니다. 옵션을 살펴보겠습니다:
-x(extract):tar에게 아카이브에서 파일을 추출하도록 지시합니다. 이것이 생성 명령어와의 주요 차이점입니다.-v(verbose): 이전과 마찬가지로 추출되는 각 파일을 나열하여 진행 상황을 보여줍니다.-f(file): 처리할 아카이브 파일의 이름을 지정합니다. 홈 디렉토리에 있는 백업 파일을 참조하기 위해~/backup.tar를 사용합니다.
일반 사용자가 쓸 수 있는 /tmp에 추출하고 백업 파일을 읽기만 하는 것이므로 (시스템 파일을 수정하는 것이 아님), 추출 시에는 sudo가 필요하지 않습니다.
이제 터미널에서 명령어를 실행하여 파일을 추출합니다:
tar -xvf ~/backup.tar
현재 디렉토리 (/tmp) 에 파일과 디렉토리가 생성되는 목록을 볼 수 있습니다. 출력 결과는 아카이브에 포함된 파일 목록이며, 생성할 때 보았던 것과 익숙한 모습일 것입니다:
home/
home/labex/
home/labex/.bashrc
home/labex/.profile
home/labex/.zshrc
home/labex/project/
home/labex/.zsh_history
...
이 출력은 tar가 /tmp 내부에 home 디렉토리를 생성하고 백업된 모든 파일과 디렉토리를 그 안에 복구했음을 나타냅니다. 마지막 단계에서 이를 확인하겠습니다.
/tmp 에 복구된 파일 확인
이 마지막 단계에서는 백업 아카이브의 파일이 /tmp 디렉토리에 올바르게 추출되었는지 확인합니다. 이는 데이터 무결성을 보장하기 위한 모든 복구 프로세스의 중요한 부분입니다.
현재 /tmp 디렉토리에 있습니다. 새로 생성된 home 디렉토리를 보려면 ls 명령어를 사용하십시오:
ls
존재할 수 있는 다른 임시 파일들 사이에서 home 디렉토리가 나열된 것을 볼 수 있어야 합니다:
home
...
이것으로 아카이브의 최상위 디렉토리가 생성되었음을 확인했습니다. 더 철저하게 확인하기 위해 이 새로운 home 디렉토리 내부를 살펴보고 예상되는 사용자 데이터가 포함되어 있는지 확인해 보겠습니다.
ls home
출력 결과에 백업했던 원래 /home 디렉토리의 내용인 labex 사용자의 홈 디렉토리가 표시되어야 합니다:
labex
이것으로 백업 및 복구 프로세스가 성공적이었음을 확인했습니다. sudo 권한으로 /home의 백업을 생성하여 홈 디렉토리 (/home/labex) 에 저장한 다음, /tmp/home이라는 임시 위치에 성공적으로 복구했습니다.
몇 개의 파일을 비교하여 복구된 파일이 원본과 일치하는지 확인할 수 있습니다. 예를 들어, .bashrc 파일이 제대로 복구되었는지 확인할 수 있습니다:
ls home/labex/.bashrc
출력 결과에서 파일이 존재함을 확인해야 합니다:
home/labex/.bashrc
이제 백업 및 복구 프로세스가 완료되었습니다. 사용자 컨텍스트를 유지하면서 시스템 백업을 생성하기 위해 sudo 권한과 함께 tar를 사용하는 방법을 성공적으로 시연했습니다. 이는 시스템 관리 작업에 권장되는 방식입니다.
요약
이 실습에서는 Linux 에서 sudo 권한과 tar 명령어를 사용하여 디렉토리 백업을 생성하고 복구하는 핵심적인 시스템 관리 작업을 배웠습니다. 프로세스는 labex 사용자로서의 환경을 이해하고 필요한 경우 승인된 권한으로 명령을 실행하기 위해 sudo를 사용하는 것으로 시작되었습니다. 이 방식은 특정 작업에 대해 일시적으로 승인된 권한을 제공하면서 사용자 컨텍스트를 유지하므로, root 사용자로 완전히 전환하는 것보다 더 안전하고 보안상 유리합니다.
sudo와 함께 tar 유틸리티를 사용하여 /home 디렉토리의 모든 내용을 포함하는 단일 아카이브 파일인 backup.tar를 생성하고, 이를 접근 가능한 홈 디렉토리에 저장했습니다. 이를 통해 사용자 경계 내에서 작업하고 시스템 기능과의 잠재적 충돌을 피하면서 시스템 전체 백업을 처리하는 방법을 확인했습니다.
복구 부분에서는 실제 데이터를 덮어쓰지 않도록 /tmp 디렉토리와 같은 안전한 임시 위치로 먼저 이동하는 모범 사례를 배웠습니다. 거기서 백업 파일을 읽고 사용자 접근 가능 위치에 쓰는 작업만 수행하므로, 승인된 권한 없이 tar 명령어를 사용하여 backup.tar 아카이브의 내용을 현재 디렉토리에 추출했습니다. 마지막 단계에서는 백업된 파일과 디렉토리가 /tmp에 올바르게 복구되었는지 확인하여 전체 백업 및 복구 주기의 무결성을 검증했습니다.



