티스토리 뷰
Rsync Snapshot and Backup
Rsync 를 이용해 날짜, 또는 시간 별로 스냅샷을 작성하고, 가장 마지막 (최근)의 파일을 그대로 백업을 뜨는 방법과 사용법에 대해 알아보겠습니다.
Command
바로 rsync 명령어를 알아보겠습니다.
rsync \
--rsh="sshpass -p [password] ssh -l [id] -p [port] \
-ab \
--recursive \
--files-from="[backup-list.txt path]" \
--exclude-from="[exclude-list.txt path] " \
--backup-dir=[target path] \
--delete \
[IP]:[storage path]
--rsh
: 는 ssh 를 통해서 파일을 전송할 때 사용합니다. rsync 서버와 ssl 연결을 사용하지 않을 거라면 이 방법도 보안에 좋아요.
-ab
: a
와 b
옵션이예요.a
: 심볼릭 링크, 속성, 퍼미션, 소유권 등의 정보를 그대로 복사합니다.b
: 백업(스냅샷)을 만듭니다.
--recursive
: 백업하려는 대상의 디렉토리 내부의 모든 파일들도 함께 백업
--files-from
: 백업 대상에서 넣어야할 아이템들
--exclude-from
: 백업 대상에서 제외할 아이템들
--backup-dir
: 스냅샷을 뜰 경로, b
옵션과는 다릅니다. 삭제된 파일들만 백업을 뜨죠.
--delete
: sync 된 대상에도 원본에서 삭제된 파일을 삭제합니다.
Files Structure
- backup.sh
- backup-list.txt
- exclude-list.txt
Files Contents
backup.sh:
#!/bin/sh
#SUFFIX=$(date +"%Y-%m-%d %H:%M:%S %j")
SUFFIX=$(date +"%Y-%m-%d")
AGO_7_SUFFIX=$(date +"%Y-%m-%d" --date '7 days ago')
SERVERNUM=101
NASIP='192.168.0.1'
BACKUP_INCREASE_DIR_7_AGO=/share/backup/$SERVERNUM/increasement/backup_$AGO_7_SUFFIX
BACKUP_INCREASE_DIR=/share/backup/$SERVERNUM/increasement/backup_$SUFFIX
BACKUP_SYNC_DIR=/share/backup/$SERVERNUM/sync
echo "[$SUFFIX]------------------------------------------------------------\n"
rsync \
--rsh="sshpass -p ****** ssh -l admin -p 60022" \
-ab \
--no-links \
--recursive \
--files-from="/root/script/backup-list.txt" \
--exclude-from="/root/script/exclude-list.txt" \
--backup-dir=$BACKUP_INCREASE_DIR \
--delete \
/ \
$NASIP:$BACKUP_SYNC_DIR
backup-list.txt:
home
usr/local/etc/php-fpm.conf
usr/local/lib/php.ini
etc/sysconfig/iptables
etc/sysconfig/network-scripts/ifcfg-em1
etc/sysconfig/network-scripts/ifcfg-em2
etc/ssh/sshd_config
etc/ssh/ssh_config
etc/vsftpd/vsftpd.conf
etc/fail2ban
etc/fstab
etc/passwd
etc/group
exclude-list.txt:
home/test
'프로그래밍언어 > 리눅스' 카테고리의 다른 글
Shell Script return 과 command failed 시 check (0) | 2020.03.25 |
---|---|
centos locale 에 en_US.utf8 추가하기 (0) | 2017.05.30 |
특정 패턴 경로의 디렉토리 시간별 제거 (0) | 2017.01.10 |
SSH 접속 지연(느림) 해결 (0) | 2017.01.06 |
[PHP-FPM] 최대 자식 개수 구하기 (0) | 2017.01.03 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- MySQL
- 채굴량
- 워드프레스
- 자바스크립트
- mariadb
- pk
- ELECTRON
- 소공
- 파이썬
- graceful shutdown
- bash
- swapfile
- centOS7
- select
- GROUP BY
- 소프트웨어 공학
- 소프트웨어 엔지니어링
- Python
- centOS
- 가 부터 힣
- backup
- NGINX
- 리눅스
- php
- flask-simpleldap
- 무정지서비스배포
- headless browser
- javascript
- ssh
- director.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함