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 |
댓글