RSYNC 리눅스 서버 자동 백업하기

rsync 명령은 파일과 디렉토리를 로컬 및 원격지에 동기화 할 때 사용하며, 리눅스 서버의 백업을 위해 rsync를 사용한 백업 쉘 스크립트를 살펴보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.


[LINUX] rsync로 리눅스 서버 자동 백업 스크립트 개발 및 설정하기
rsync --help

rsync 명령은 파일과 디렉토리를 로컬 및 원격지에 동기화 할 때 사용하며, 리눅스 서버의 백업을 위해 rsync를 사용한 백업 쉘 스크립트를 살펴보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.
rsync를 사용한 쉘 스크립트를 통해 리눅스 데이터 풀 백업과 증분 백업을 할 수 있습니다. bash 쉘 스크립트를 작성해서 백업 실행 파일을 생성하고, cron 작업 등록을 통해 자동화 합니다.
아래 실습에서는 매일 새벽 1시에 rsync를 사용한 쉘 스크립트 파일을 실행해서 /linux/backup/192.168.0.100/FULL 디렉터리에 풀 백업 데이터가 저장되며, 바뀐 파일은(증분 백업) /linux/backup/192.168.0.100/20200603 경로에 백업됩니다.


실습 환경

  • 운영 체제(OS) : CentOS 8
  • root 계정으로 실행
  • IP 설정 및 인터넷이 가능한 환경
  • rsync 설치 및 환경 설정이 완료된 서버

쉘 스크립트 파일 및 백업 경로 디렉터리 생성하기

백업 스크립트 파일 생성 및 데이터 백업 경로를 설정합니다.

쉘 스크립트 파일과 환경 설정 파일 디렉터리 생성하기

[mkdir -p /backup_batch/etc]

백업 데이터 저장 디렉터리 생성하기

[mkdir -p /linux/backup]

백업 스크립트 작성하기

rsync를 사용해서 백업을 진행 할 실행파일을 작성합니다.
backup.sh 파일을 vi로 열어서 아래 코드를 입력하고 저장합니다.

[vi /backup_batch/backup.sh]

[#!/bin/bash DATE=`date +%Y%m%d` DAY=`date +%d` DST=/linux/backup/ LOG_BAK=/backup_batch/bak_log/ ETC=/backup_batch/etc/ LIST=" 192.168.0.100 << 백업 대상 서버 IP " for L in ${LIST} ; do INI=$(cat $ETC$L.ini) if [ ! -d $DST$L/FULL ]; then mkdir -p $DST$L/FULL date +"[%Y/%m/%d %H:%M:%S] ${L} : START" rsync_PASSWORD=패스워드 $INI 계정명@$L:/ $DST$L/FULL > $LOG_BAK/back_$DATE-FULL.log.${L} 2>&1 date +"[%Y/%m/%d %H:%M:%S] ${L} : END" else mkdir -p $DST$L/$DATE FDAY=$(ls $DST$L/ | grep FULL) date +"[%Y/%m/%d %H:%M:%S] ${L} : START" rsync_PASSWORD=패스워드 $INI --backup --backup-dir=$DST$L/$DATE 계정명@$L:/ $DST$L/$FDAY/ > $LOG_BAK/back_$DATE.log.${L} 2>&1 date +"[%Y/%m/%d %H:%M:%S] ${L} : END" fi sleep 5 done /usr/bin/tail -15 $LOG_BAK/back_$DATE-FULL.log.* | /usr/bin/mutt -s "backup_log_`date +%Y%m%d`" 메일 계정 /usr/bin/tail -15 $LOG_BAK/back_$DATE.log.* | /usr/bin/mutt -s "backup_log_`date +%Y%m%d`" 메일 계정]

백업 스크립트 실행 권한 추가하기

[chmod +x /backup_batch/backup.sh]

백업 환경 설정 파일 생성하기

백업 대상 서버의 백업 경로와 옵션을 지정하는 환경 파일을 작성합니다.
IP.ini 파일 형식으로 작성하며, exclude 옵션을 사용해서 백업에서 제외할 경로를 설정합니다.

[vi /backup_batch/etc/192.168.0.100.ini]

exclude 옵션을 사용해서 제외할 디렉토리 경로를 추가합니다.

[/usr/bin/rsync -avrH --progress --stats --delete --exclude=/proc/* --exclude=/lost+found/* --exclude=/media/* --exclude=/mnt/* --exclude=/sys/* --exclude=/pub/chroot/pub/* --exclude=/pub/log/nginx/*]

작업 스케줄러 등록하기

/etc/crontab 파일에 자동 백업 스크립트 실행 작업을 추가합니다.

[vi /etc/crontab]
[00 01 * * * root /backup_batch/backup.sh]

마무리

rsync를 사용한 리눅스 서버 백업 스크립트 개발 및 자동 백업 설정 작업이 완료되었습니다.
상용 및 오픈 소스 백업 소프트웨어를 사용할 수 없을 때, rsync를 사용한 쉘 스크립트 개발을 통해 간편하게 리눅스 서버 백업을 할 수 있습니다.

COMMENTS

이름

가상 머신 생성,1,가상 머신 자동 시작,2,그라파나 비밀번호 초기화,1,데이터베이스 설치,1,리눅스 메모리,1,리눅스 명령어 자동 완성,2,리눅스 백업,1,리눅스 설치,1,리눅스 시스템 언어,1,리눅스 언어 설정,1,리눅스 원격 명령 실행,1,리눅스 프로세스,1,리눅스 한글 설정,1,리눅스 LOCALE,1,리버스 프록시,1,맥북,1,메모리,1,모바일 리다이렉션,1,모바일 페이지,1,백업 스크립트,1,버추얼박스 설치,1,보안 취약점,1,사설 인증서,1,서버 관리,2,소스 컴파일,1,슬랙 사용법,1,슬랙 시작,1,슬랙 초보자 가이드,1,엔진엑스 설치,1,원격 데스크톱 연결,1,웹 접속 제한,1,윈도우 비밀번호 초기화,1,윈도우 전원 옵션,1,윈도우 PATH,1,이미지 압축,1,이미지 용량 줄이기,1,인증서 생성,1,인증서 설치,1,자동 로그인,1,자빅스 한글,1,자체 서명,1,점검 스크립트,1,젠서버 설치,1,커널 삭제,1,콘솔 파란색 설정,1,클립보드 공유,1,파이썬 설치,1,파일 업로드 제한,1,프로세스 관리,1,프로세스 오류,1,한국어 설정,1,한글 설정,1,한영 전환,1,호스트 전용 네트워크,1,ADMIN 초기화,1,APACHE,1,APPLICATIONS,16,Big Sur,1,CentOS,4,CentOS 6,9,CentOS 7,4,CentOS 8,21,CentOS 8 설치,1,CentOS 설치 이미지 다운로드,1,CentOS ISO Download,1,CentOS-Base.repo,1,Citrix Hypervisor,2,DATABASES,1,dnf install httpd,1,DROPPING PACKET,1,GRAFANA,1,htpasswd,1,HTTP 기본 인증,2,HTTPS,1,IPTABLES,1,ISMS,1,ISO 저장소,1,JENNIFER,1,jennifer_admintool,1,jpg smaller,1,LINUX,29,macOS,2,MariaDB,1,MONITORING,3,NF_CONNTRACK,1,NGINX,9,NGINX 설치,1,NGINX SSL 설정,1,openssl 인증서 생성,1,pam 인증,1,passwd,1,PHP,1,PHP-FPM 설치,1,PuTTY,1,PYTHON,1,RSYNC,1,SFTP,1,Shift + Space 한영 전환,1,SLACK,2,slack 사용법,1,SSH 인증,1,SSH 자동 로그인,2,SSHPASS,3,SSL 경고 로그,1,SSL 인증서,1,su,1,SWAP,1,TABLE FULL,1,TABLEAU,1,tinypng,1,TIP,1,TMUX,3,TMUX 설치,2,useradd,1,userdel,1,VirtualBox,4,VIRTUALIZATION,7,VM,3,VMware,1,VMware 무료 라이센스,1,Vmware Fusion,1,wheel 그룹,1,WINDOWS,7,Windows 10,7,XCP-ng,2,XenServer,4,YUM,1,ZABBIX,1,
ltr
item
시스템 엔지니어의 세상: RSYNC 리눅스 서버 자동 백업하기
RSYNC 리눅스 서버 자동 백업하기
rsync 명령은 파일과 디렉토리를 로컬 및 원격지에 동기화 할 때 사용하며, 리눅스 서버의 백업을 위해 rsync를 사용한 백업 쉘 스크립트를 살펴보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJANC5N3SQPRpmXUzpLuAyk9CD_PGPKjWmQ_oaGloXzz1Dbekz5_CZwd6FscGJCuFNmf7R4urLryWD-X9qJKmaoxjcBNXf8nUE675hN8bsna7jGwjjRXltvsuiILYEDnbOaMcVFGWv86k/d/rsync+%25281%2529.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJANC5N3SQPRpmXUzpLuAyk9CD_PGPKjWmQ_oaGloXzz1Dbekz5_CZwd6FscGJCuFNmf7R4urLryWD-X9qJKmaoxjcBNXf8nUE675hN8bsna7jGwjjRXltvsuiILYEDnbOaMcVFGWv86k/s72-c-d/rsync+%25281%2529.png
시스템 엔지니어의 세상
https://www.runit.cloud/2020/06/bash-rsync.html
https://www.runit.cloud/
https://www.runit.cloud/
https://www.runit.cloud/2020/06/bash-rsync.html
true
7559506062450536879
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content