-
백업해야 할 디렉토리는 무엇인가요?
-
방법 1: Cp를 사용한 Linux 디렉터리 백업
-
방법 2: Tar를 사용하여 Linux 디렉터리 백업하기
-
방법 3: Rsync를 사용하여 Linux 디렉터리 백업하기
-
방법 4: Scp를 사용하여 Linux 디렉터리 백업
-
방법 5: Linux 파일/폴더/서버 백업 및 복원
-
Linux 디렉터리 백업 FAQ
-
결론
Linux에서 디렉터리는 시스템상의 파일과 데이터를 조직하고 관리하는 데 핵심적인 역할을 합니다. 디렉터리 구조는 Linux 파일 시스템의 기반이 되며, 파일과 디렉터리의 계층적 구조를 제공합니다.
또한 많은 Linux 응용 프로그램과 서비스는 Linux 디렉터리 구조 내의 특정 디렉터리와 파일에 의존합니다. 예를 들어, 응용 프로그램의 설정 파일은 종종 특정 디렉터리에 저장되며, 시스템 로그는 일반적으로 중앙 집중식 위치에 저장됩니다. 때로는 주요 파일 시스템 구조를 개편해야 할 수도 있습니다.
Linux를 여러 위치에 백업할 수 있지만, 전체 서버 외에도 특정 중요한 Linux 디렉터리를 백업하는 것이 필요합니다.
하지만 잠깐, 시도할 가치가 있는 디렉토리가 무엇인지 알아야 합니다. 이 기사에서는 백업해야 할 Linux 디렉토리와 이를 수행할 수 있는 5가지 주요 방법을 알아보겠습니다.
백업해야 할 디렉토리는 무엇인가요?
/etc: 시스템의 중요한 구성 파일을 저장하는 디렉토리로, 사용자 및 그룹 정보, 네트워크 설정, 애플리케이션 구성, 시작 파일 등을 포함합니다. 이 디렉토리가 없다면 시스템 장애 발생 시 복구에 많은 시간과 노력을 들여야 합니다. 따라서 시스템과 애플리케이션을 처음부터 다시 설치하지 않도록 /etc 디렉토리의 백업이 매우 중요합니다.
/home: 사용자 데이터, 파일, 문서, 그림 및 다운로드는 사용자 이름으로 된 /home 디렉터리에 저장됩니다. 이 디렉터리를 백업하는 것은 사용자에게 가장 중요한 작업입니다.
/root: 루트 사용자의 홈 디렉터리를 백업하는 것은 매우 중요합니다. 이 디렉터리에는 다운로드 파일, 설정 파일, 스크립트, 노트와 같이 시스템 관리자에게 필수적인 중요한 정보와 고유한 자료가 포함되어 있습니다.
/var: 데이터베이스, 웹 페이지, 로그 파일, 크론탭 등 다양한 파일들을 저장합니다. 매일 증가하는 용량으로 인해 별도의 저장 공간과 디스크가 필요합니다.
/usr/local/bin: 비어 있거나 비표준 스크립트 및 응용프로그램을 포함할 수 있습니다. 비어 있는 경우 백업 혼동을 피하기 위해 빈 파일(/usr/local/bin/empty)을 생성하는 것이 좋습니다.
/usr/local/sbin: 마찬가지로 /usr/local/sbin도 중요하며 종종 비어 있습니다. 비어 있음을 표시하기 위해 디렉터리에 빈 파일(/usr/local/sbin/empty)을 추가할 수 있습니다.
/srv: WWW 업로드, FTP 파일, CVS 등 인터넷 관련 서비스 파일에 사용되지만 비어 있을 수도 있습니다. 사용은 임의적이며 드뭅니다.
/opt: 타사 또는 별도 소프트웨어용입니다. 새로운 소프트웨어를 테스트할 때 유용합니다. 폴더가 비어 있을 경우 opt/empty라는 빈 파일이 추가됩니다.
공유 디렉터리: /finance, /data 또는 특정 그룹에 대한 특별 권한이 있는 /hr과 연결될 수 있습니다. 이러한 디렉터리에는 고유한 기업 데이터가 포함될 수 있으므로 백업해야 합니다. 필요할 경우에만 이러한 디렉터리를 생성하십시오.
방법 1: Cp를 사용한 Linux 디렉터리 백업
Cp(복사) 명령은 파일 또는 디렉터리를 복사하는 3가지 주요 동작 모드를 가지며, 파일을 다른 위치로 복사하거나 여러 파일을 디렉터리에 복사, 디렉터리를 다른 위치로 복사할 수 있습니다.
옵션:
Parameter(매개변수) | Description(설명) |
---|---|
--archive, -a | 복사 과정 중 파일 및 디렉터리의 속성과 권한을 보존합니다. |
- attributes-only | 파일 속성만 복사합니다. |
--backup[=CONTROL] | 현재 모든 대상 파일을 백업하십시오. |
--copy_contents | 특수 파일 내용을 재귀적으로 복사합니다. |
--force, -f | 기존 대상 파일을 삭제하고 다시 엽니다. 단, -n 플래그를 사용한 경우는 예외입니다. |
--interactive, -i | 이전 -n 플래그를 덮어쓰기 전에 확인합니다. |
--preserve[=ATTR_LIST] | 포함된 속성을 보존합니다. |
--remove-destination | 열기 전에 모든 현재 대상 파일을 제거합니다. |
--symbolic-link, -s | 기호 링크를 생성합니다. |
--suffix=SUFFIX, -s | 백업 접미사를 무시합니다. |
--help | 도움말 메뉴를 표시한 후 종료됩니다. |
1. 포함된 모든 콘텐츠와 함께 디렉토리를 다른 디렉토리로 복사하십시오.
cp -r <sourceDirectory> <destinationDirectory>
2. 대상 디렉터리에 있는 기존 파일을 백업하십시오.
cp --backup <파일명> <대상디렉터리>
3. Linux에서 여러 디렉터리 복사하기.
$ cp -R <source_folder_1> <source_folder_2> ... <source_folder_n> <destination_folder>
/etc 및 home 디렉터리를 복사하십시오.
$ cp -R /etc/* /home/* /backup_folder
5. 디렉터리 내용을 재귀적으로 복사합니다.
$ cp -R <소스_폴더>/* <대상_폴더>
방법 2: Tar를 사용하여 Linux 디렉터리 백업하기
Tar(테이프 아카이브)는 파일과 디렉터리를 tarball로 압축하며, tar, gzip, bzip 형식으로 백업을 생성합니다.
옵션:
Parameter | Description |
---|---|
-c | tar 아카이브를 생성합니다. |
-x | tar 아카이브에서 추출합니다. |
-t | tar 아카이브 내부의 파일 목록을 표시합니다. |
-r | tar 아카이브에 추가 파일을 더합니다. |
- W | tar 아카이브를 검증합니다. |
-z | gzip를 사용하여 tar 아카이브를 만듭니다. |
-j | bzip를 사용하여 tar 아카이브를 만듭니다. |
-v | 상세 정보를 표시합니다. |
-f | 압축 파일 이름을 지정합니다. |
1. 디렉터리의 tar 아카이브를 생성합니다.
tar -cf 아카이브_이름.tar 소스_디렉터리
2. /etc 디렉터리에서 bz2 아카이브를 생성합니다.
tar -cjf archive_name.bz2 /etc
3. /user 디렉터리에서 tar.gz 아카이브를 생성합니다.
tar -czf archive.name.tar.gz /use
4. tar 아카이브를 추출하십시오.
tar -tvf 아카이브_이름.tar
5. tar gzip 아카이브를 추출하십시오.
tar -xzvf archive.name.tar.gz
6. tar bz2 아카이브를 추출하십시오.
tar -xjvf archive.name.tar.bz2
7. tar 아카이브를 다른 디렉터리로 추출하십시오.
tar -xvf archive_name_tar -C / destination_directory
방법 3: Rsync를 사용하여 Linux 디렉터리 백업하기
Rsync는 원격으로 파일을 복사하는 도구로, 단독으로 사용되거나 bash 스크립트 내에 통합될 수 있습니다. 다양한 그래픽 사용자 인터페이스(GUI)에서 활용되며, 리눅스 관리자에게 거의 모든 종류의 백업을 수행할 수 있는 충분한 유연성을 제공합니다.
이 Linux 기반 유틸리티를 사용하여 전체 시스템, 개별 파일 또는 디렉터리를 백업할 수 있습니다.
옵션:
파라미터 | 설명 |
-a | 복사 과정이 재귀적으로 이루어지며 파일/디렉터리 권한 및 소유권과 같은 속성이 보존되도록 합니다. |
-p사용 시 주의가 필요합니다.
-v | 세부 모드(Verbose mode)는 터미널에 출력되는 로그의 양을 늘립니다. | -x | rsync이 파일 시스템 경계 내에서만 동기화하도록 제한하며, 홈 디렉터리 내의 마운트는 제외합니다. | 각 동기화 작업의 진행 상황을 표시하고 전송이 중단된 경우 부분적으로 전송된 파일을 유지합니다. |
--delete | 소스 디렉터리에 존재하지 않는 대상 디렉터리의 디렉터리나 파일을 삭제합니다. 주의해서 사용하십시오. | |||
--exclude-from=파일 | 목록에 있는 파일 및 디렉터리를 제외합니다. |
전체 옵션은 Rsync 웹사이트로 이동하세요.
1. Rsync를 설치하십시오.
sudo apt-get install rsync -y
Rsync를 시작하고 활성화합니다.
sudo systemctl start rsync
sudo systemctl enable rsync
2. 외장 드라이브에 $HOME 디렉터리 백업하기.
$ rsync -avxP --delete --exclude-from=/files/to/be/ignored_list.txt /home/external/drive/location
참고: 처음으로 Rsync를 사용하는 경우 시뮬레이션을 위해 -avxP 뒤에 -n을 추가하십시오. 명령이 예상대로 작동하면 -n을 제거하고 -n 없이 명령을 실행하여 백업하십시오.
3. Linux 디렉터리를 원격 호스트에 복사합니다.
$ rsync -ar <소스_폴더> <대상_사용자>@<대상_호스트>:<경로>
/etc/ 디렉터리를 백업 서버로 복사하십시오.
$ rsync -ar /etcusername@xxx.xxx.xxx.xx:/etc_backup
5. bash로 디렉터리를 백업할 때 현재 데이터를 표시하십시오.
$ rsync -ar /etc/* username@xxx.xxx.xxx.xx:/etc_backup /etc_$(date "+%F")
방법 4: Scp를 사용하여 Linux 디렉터리 백업
Scp(secure copy)는 SSH 연결 또는 암호화 연결을 통해 파일을 복사합니다. 이를 사용하면 Linux, Mac, Windows에서 원격 컴퓨터와 시스템 간에 파일을 복사할 수 있습니다.
1. Linux 디렉터리를 원격 위치에 복사합니다.
$ scp -r <소스_폴더> <대상_사용자>@<대상_호스트>:<경로>
2. 홈 폴더의 모든 파일을 원격 폴더로 복사하십시오. 재귀적으로 파일을 복사하려면 -r을 추가하십시오.
scp /home/user/html/* username@server:/path/to/folder/
/etc 디렉터리를 백업 서버에 복사합니다.
$ scp -r /etc username@xxx.xxx.xxx.xx:/etc_backup
방법 5: Linux 파일/폴더/서버 백업 및 복원
다양한 기능을 지원하는 Linux 및 Windows용 서버를 사용하여 파일, 디렉터리, Vinchin Backup & Recovery로 백업 및 복원할 수 있습니다. Vinchin는 Ubuntu, RHEL, CentOS 등 주요 Linux OS와 VMware, Hyper-V, Xen 등 15가지 이상의 가상화 플랫폼, 6종의 데이터베이스, NAS를 지원하며, 다음과 같은 기능을 제공합니다:
자동 예약 기능이 포함된 간편한 백업 및 복원 절차.
백업할 파일/폴더를 하나 이상 선택하십시오.
와일드카드를 사용하여 파일 형식을 제외하거나 포함합니다.
CIFS 및 NFS 프로토콜을 통해 NAS에 파일/폴더/서버 백업을 수행할 수 있습니다.
AES-256 알고리즘으로 데이터 암호화를 활성화하십시오.
암호화 전송을 통해 NAS 공유/파일 서버로 데이터를 쉽게 복원하십시오.
직관적인 웹 콘솔에서 백업 작업을 손쉽게 생성할 수 있습니다.
1. Linux 서버 선택
2. 백업 저장소 선택
3. 백업 전략 선택
4. 작업 제출
완전한 Linux 백업 및 복구를 위해 Vinchin Backup & Recovery의 60일 무료 체험판을 지금 다운로드하십시오.
Linux 디렉터리 백업 FAQ
Q1: 디렉터리를 백업할 때 파일 권한은 어떻게 보존할 수 있나요?
A: 백업 중 소유권, 권한, ACL 및 확장 속성을 유지하려면 rsync -a 또는 tar -cp 옵션을 사용하십시오.
Q2: 백업에서 동적 시스템 디렉터리를 제외하려면 어떻게 해야 하나요?
A: --exclude=/proc/* --exclude=/sys/* --exclude=/dev/* 와 같은 제외 패턴을 사용하여 가상 및 런타임 파일시스템을 건너뛰어 불필요한 데이터 백업을 방지하십시오.
Q3: LUKS 헤더를 재해 복구를 위해 어떻게 백업하나요?
A: LUKS 헤더와 키슬롯의 바이너리 백업을 안전하게 저장하려면 cryptsetup luksHeaderBackup --header-backup-file <파일> <장치> 명령을 사용하십시오.
결론
리눅스에서 특정 중요한 폴더나 디렉터리의 백업을 생성하는 것이 중요합니다. 이 문서는 백업해야 할 필수 리눅스 디렉터리들과 그 방법 5가지를 제공합니다. 처음 4가지 방법은 명령줄과 관련이 있으며 사용자는 시스템 내부에서나 설치 후에 해당 명령어를 실행할 수 있습니다. 또는 Vinchin Backup & Recovery를 사용하여 리눅스 및 윈도우즈에서 중요한 파일/폴더/서버를 백업하고 복구할 수도 있습니다.
공유하기: