본문 바로가기
Server/리눅스

CentOS 8 rysnc 백업

by Choraengyi 2021. 1. 26.

1. 리눅스 백업 구성

  rsync 를 통한 원격지 백업

2. 백업 스케쥴 수립

  매일 증분 백업 진행, 변경된 부분만 저장

  일요일마다 풀 백업 진행, 전체 백업이며 매주 구분을 위해 날짜기반 폴더 생성

  cron 으로 반복 및 스케쥴링 수행

 

3. 리눅스 방화벽 통신 포트 허용, 폴더 생성

  리눅스 백업 서버에서 설정

[root@localhost ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="<리눅스 서버 IP>" port port="22" protocol="tcp" accept"
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# firewall-cmd --list-all

[root@localhost ~]# mkdir /backup

 

4. ssh key 교환

  인증없이 rsync 접속하도록

  리눅스 서버에서 설정

[root@localhost ~]# ssh root@<백업 서버 IP>
root@백업 서버 IP's password:

[root@localhost ~]# ssh-keygen -t rsa -b 4096

[root@localhost ~]# ls -l ~/.ssh
합계 12
-rw-------. 1 root root 3389  1월 16 22:43 id_rsa
-rw-r--r--. 1 root root  752  1월 16 22:43 id_rsa.pub
-rw-r--r--. 1 root root  172  1월 10 01:37 known_hosts

[root@localhost ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub <백업 서버 IP>
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@백업 서버 IP's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '백업 서버 IP'"
and check to make sure that only the key(s) you wanted were added.

[root@localhost ~]# ssh <백업 서버 IP>

Last login: Thu Jan 17 09:33:37 2021 from 마지막 접근 IP

 

5. 스크립트문 작성

  리눅스 서버에서 설정

[root@localhost backup_log]# vi /backup_log/backup.sh

  백업 스크립트 설정, 필요한 폴더만 따로 지정하여 설정 가능

  백업서버 경로에 '년월주' 폴더에 백업, 폴더 자동 생성됨

  - 주 -> %U -> Week Number

  터미널 발생 로그 파일로 저장하도록 설정, '년월일.txt' 형식

#!/bin/bash
echo "Start : "$(date) >> /backup_log/$(date +%Y%m%d).txt
rsync -avhz --delete / --exclude={"/dev/","/proc/","/sys/","/tmp/","/run/","/mnt/","/media/","/lost+found","/backup/"} root@<백업 서버 IP>:/backup/$(date +%Y%m%U) >> /backup_log/$(date +%Y%m%d).txt
echo "End : "$(date) >> /backup_log/$(date +%Y%m%d).txt
echo ----------------------------------------------------------------------------------------------------- >> /backup_log/$(date +%Y%m%d).txt
echo >> /backup_log/$(date +%Y%m%d).txt
echo >> /backup_log/$(date +%Y%m%d).txt
echo >> /backup_log/$(date +%Y%m%d).txt
echo >> /backup_log/$(date +%Y%m%d).txt
echo >> /backup_log/$(date +%Y%m%d).txt
echo >> /backup_log/$(date +%Y%m%d).txt

 

6. cron 설정

  스크립트 반복 설정

[root@localhost backup_log]# crontab -e

 

0 1 * * * /backup_log/backup.sh

 

[root@localhost backup_log]# crontab -l
0 1 * * * /backup_log/backup.sh

 

7. 백업스크립트 실행 테스트

[root@localhost backup_log]# ./backup.sh
728x90
반응형

'Server > 리눅스' 카테고리의 다른 글

bind9 업그레이드  (0) 2022.03.25
칼리리눅스 RDP 설정  (0) 2021.02.22
CentOS snmp 설정  (0) 2021.01.23
Ubuntu 서버에 하드디스크 추가  (0) 2016.12.11
우분투 스마트폰으로 원격 부팅  (0) 2016.11.21

댓글