백업을 원하는 특정폴더를 cron을 이용하여 정해진 시간에 백업후 rclone을 통해 분산 백업 하는 내용
sudo tar -cvzf [백업파일이 생성될 경로, 백업을 원하는 폴더의 상대경로]_$(date +%y%m%d%H%M).tgz --exclude "*.log" /[백업을 원하는 경로]/
예 ) sudo tar -cvzf backup_des_$(date +%y%m%d%H%M).tgz --exclude "*.log" /backup/
tar : ubuntu 압축 프로그램
- 옵션 : c(파일묶음), v(처리과정출력), z(gzip압축), f(tar 대상 지정)
$(date +%y%m%d%H%M) : 압축파일 생성 시간 파일명 뒤에 붙임
--exclude : 압축을 원하지 않는 폴더 지정
- *.log(.log로 끝나는 모든 파일 제외), 백업파일이 저장될 폴더 제외 등
위의 local backup 스크립트를 sh로 저장
[rev_backup.sh]
#!/bin/bash
sudo tar -cvzf backup_des_$(date +%y%m%d%H%M).tgz --exclude "*.log" /backup/
이후 rclone을 활용하여 백업 수행 토록 설정
local에 직접 rclone을 설치하여 실행 하여도 좋고, docker를 활용하는 방법도 있음
이글에서는 docker를 활용한 rclone 백업을 안내
[rev_rclone_backup.yaml]
version: '3'
services:
rclone_bk:
container_name: rclone_bakcup
image: 'rclone/rclone:latest'
restart: unless-stopped
privileged: true
devices:
- /dev/fuse
cap_add:
- SYS_ADMIN
volumes:
- /docker/rclone/config:/config
- /docker/rclone/log:/log
- /docker/rclone/cache:/cache
- /docker/rclone/data:/data:shared
- /docker/rclone/local:/local
command:
move [/백업대상폴더경로] [백업파일이저장될 목적지 경로] --config /config/rclone/rclone.conf --log-level INFO --stats 1s --stats-file-name-length 0 --transfers=4 --checkers=8 --delete-empty-src-dirs --create-empty-src-dirs --delete-after --drive-chunk-size=256M
rclone 공식 홈페이지에서 제공하는 docker이미지를 활용한 docker-compose 구문으로,
command 행에 백업 파일이 분산될 대상을 지정하는 옵션을 적절히 지정 하면 됨
로컬에 백업파일이 남아 있을 필요는 없으므로 move를 통해 업로드 함
backup, rclone 업로드 자동화
crontab을 활용하여 매일 지정된 시간에 백업 및 업로드 수행
매일 23시 백업 및 Rclone을 통해 업로드
0 23 * * * /bin/bash /rev_docker_backup.sh && /usr/bin/docker-compose -f rev_backup_rclone.yaml run rclone_bk
'IT' 카테고리의 다른 글
| google play search issue(구글 플레이 오류) (0) | 2022.09.18 |
|---|---|
| Speedtest ubuntu 설치시 apt 오류 해결법 (0) | 2022.08.06 |
| exiftool 사용법 (구글포토) (0) | 2022.07.13 |
| GeoIP for Ubuntu (0) | 2022.07.13 |
| linux bandwith limit (0) | 2022.07.13 |