IT 기술 문서

2025.02.01 17:30

CentOS 7 유용한 명령어 시리즈 - ⑯ 파일 압축 및 백업 관리

  • it2033 4일 전 2025.02.01 17:30
  • 4
    0

alt text


서버 운영 중 중요한 데이터는 정기적으로 백업하고 보관해야 합니다. CentOS 7에서는 다양한 파일 압축 및 백업 명령어를 지원하며, 이를 활용하여 데이터를 효과적으로 관리할 수 있습니다. 이번 글에서는 파일 압축 및 백업을 위한 필수 명령어들을 정리하겠습니다.


1. 파일 압축 및 해제

1.1. tar 압축 및 해제

tar 명령어는 여러 파일을 하나의 아카이브 파일로 묶거나 압축하는 데 사용됩니다.

1.1.1. tar로 디렉토리 압축

tar -cvf backup.tar /home/user
  • /home/user 디렉토리를 backup.tar 파일로 압축합니다.

  • -c : 새 아카이브 생성

  • -v : 진행 상황 표시

  • -f : 파일 이름 지정

1.1.2. gzip을 사용한 tar 압축

tar -czvf backup.tar.gz /home/user
  • gzip을 사용하여 backup.tar.gz 파일로 압축합니다.

  • -z : gzip 압축 사용

1.1.3. bzip2를 사용한 tar 압축

tar -cjvf backup.tar.bz2 /home/user
  • bzip2를 사용하여 backup.tar.bz2 파일로 압축합니다.

  • -j : bzip2 압축 사용

1.1.4. tar 압축 해제

tar -xvf backup.tar
tar -xzvf backup.tar.gz
tar -xjvf backup.tar.bz2
  • 각각 tar, gzip, bzip2로 압축된 파일을 해제합니다.

  • -x : 압축 해제


1.2. zip 및 unzip 사용

1.2.1. zip으로 파일 및 폴더 압축

zip backup.zip file1 file2
zip -r backup.zip /home/user
  • file1file2backup.zip으로 압축

  • /home/user 폴더를 backup.zip으로 압축 (-r 옵션)

1.2.2. zip 압축 해제

unzip backup.zip
  • backup.zip 파일을 해제


1.3. 7z 압축 및 해제 (7zip)

1.3.1. 7z 설치

yum install p7zip -y

1.3.2. 7z 압축

7z a backup.7z /home/user
  • /home/user 디렉토리를 backup.7z 파일로 압축

1.3.3. 7z 압축 해제

7z x backup.7z
  • backup.7z 압축 해제


2. 데이터 백업 및 복원

2.1. rsync를 이용한 원격 및 로컬 백업

2.1.1. 로컬 디렉토리 백업

rsync -av /home/user /backup/
  • /home/user 디렉토리를 /backup/에 동기화하여 백업

2.1.2. 원격 서버로 백업 (SSH)

rsync -avz /home/user user@remote-server:/backup/
  • /home/user 디렉토리를 원격 서버 /backup/ 디렉토리에 전송

2.1.3. 원격 서버에서 로컬로 복사

rsync -avz user@remote-server:/backup/ /home/user
  • 원격 서버 /backup/을 로컬 /home/user에 복사


2.2. scp를 이용한 원격 백업

2.2.1. 단일 파일 전송

scp file.txt user@remote-server:/backup/
  • file.txt를 원격 서버 /backup/으로 복사

2.2.2. 디렉토리 전송

scp -r /home/user user@remote-server:/backup/
  • /home/user 디렉토리를 원격 서버 /backup/에 복사


2.3. dd 명령어를 이용한 디스크 백업

2.3.1. 디스크 전체 백업

dd if=/dev/sda of=/backup/sda.img bs=4M status=progress
  • /dev/sda 디스크를 sda.img로 백업

2.3.2. 백업 파일을 디스크로 복원

dd if=/backup/sda.img of=/dev/sda bs=4M status=progress
  • sda.img/dev/sda 디스크에 복원


3. MySQL / MariaDB 데이터베이스 백업 및 복원

3.1. 특정 데이터베이스 백업

mysqldump -u root -p mydatabase > mydatabase_backup.sql
  • mydatabasemydatabase_backup.sql로 백업

3.2. 모든 데이터베이스 백업

mysqldump -u root -p --all-databases > all_databases_backup.sql
  • 모든 데이터베이스를 백업

3.3. 특정 데이터베이스 복원

mysql -u root -p mydatabase < mydatabase_backup.sql
  • 백업한 mydatabase_backup.sqlmydatabase에 복원

3.4. 모든 데이터베이스 복원

mysql -u root -p < all_databases_backup.sql
  • 전체 데이터베이스를 복원


4. 크론(cron)으로 자동 백업 설정

4.1. crontab 설정 파일 열기

crontab -e
  • 사용자별 크론 작업을 편집

4.2. 매일 자정에 MySQL 백업 실행

0 0 * * * mysqldump -u root -p'mypassword' mydatabase > /backup/mydatabase_$(date +\%F).sql
  • 매일 자정(0 0 * * *)에 mydatabase/backup/에 날짜별로 백업

4.3. 매주 일요일 밤 11시에 전체 데이터베이스 백업

0 23 * * 0 mysqldump -u root -p'mypassword' --all-databases > /backup/all_databases_$(date +\%F).sql
  • 매주 일요일(0 23 * * 0) 밤 11시에 전체 데이터베이스 백업


정리

명령어

설명

tar -czvf backup.tar.gz /home/user

gzip으로 tar 압축

tar -xvzf backup.tar.gz

gzip 압축 해제

zip -r backup.zip /home/user

zip 압축

unzip backup.zip

zip 해제

rsync -av /home/user /backup/

로컬 디렉토리 백업

rsync -avz /home/user user@remote:/backup/

원격 서버로 백업

scp file.txt user@remote:/backup/

원격 서버로 파일 전송

dd if=/dev/sda of=/backup/sda.img bs=4M status=progress

디스크 백업

mysqldump -u root -p mydatabase > mydatabase_backup.sql

MySQL 데이터베이스 백업

mysql -u root -p mydatabase < mydatabase_backup.sql

MySQL 데이터베이스 복원

crontab -e

크론 작업 편집

0 0 * * * mysqldump -u root -p'mypassword' mydatabase > /backup/mydatabase_$(date +\%F).sql

자동 백업 스케줄링

이번에는 파일 압축 및 백업 관리 명령어를 정리했습니다. 다음 시리즈에서는 커널 및 부팅 관리 명령어를 다루겠습니다.

  • 공유링크 복사