前言
容器化是當(dāng)前的趨勢(shì)尔破,文件備份系統(tǒng)網(wǎng)上雖然有很多種肄梨,不過(guò)使用配置起來(lái)并不是很方便,這里將介紹通過(guò)自己基于rsync做的一套文件備份系統(tǒng)闻丑,容器化配置簡(jiǎn)單易懂漩怎,鏡像只有幾兆
- 支持保留文件權(quán)限
- 支持檢查主機(jī)資源,資源小于設(shè)定值時(shí)會(huì)優(yōu)先刪除老文件嗦嗡,再備份新文件
- 支持設(shè)置每個(gè)文件備份的次數(shù)
- 支持設(shè)置保留文件的天數(shù)
- 支持自動(dòng)注冊(cè)
部署
1. 安裝docker(此處不多做介紹)
a. 通過(guò)yum安裝:
參考:官方文檔
b. 通過(guò)二進(jìn)制安裝:
參考:安裝docker
2. 安裝docker-compose
a. 下載最新compose版本
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
版本發(fā)布地址:https://github.com/docker/compose/releases
b. 添加執(zhí)行權(quán)限
sudo chmod +x /usr/local/bin/docker-compose
c. 命令補(bǔ)全工具(此步驟可選)
sudo curl -L https://raw.githubusercontent.com/docker/compose/1.21.2/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
具體參考:https://docs.docker.com/compose/completion/
3. 配置客戶端(用來(lái)備份文件的主機(jī))
a. 創(chuàng)建docker-compose.yaml文件
version: '2'
services:
rsync-client:
restart: always
image: commanderhu/rsync-client
container_name: rsync-client
volumes:
- /home/rsync/rsync_backup/:/backup_client/ #左邊備份文件存的路徑
ports:
- "22023:22"
environment:
- SLEEP_TIME=86400 #單位:秒,每次備份間隔時(shí)間勋锤,默認(rèn)為86400
- EXPIRATION_DAY=15 #單位:天,文件保留時(shí)間
- MINIMUM_DISK=500 #單位:G,最小磁盤(pán)預(yù)留空
b. 啟動(dòng)
docker-compose up -d
c. 檢查
docker logs -f rsync-client
/home/rsync/rsync_backup路徑下會(huì)創(chuàng)建空文件rsync_list
4. 配置服務(wù)端(需要被備份的主機(jī))
a. 創(chuàng)建docker-compose.yaml文件
version: '2'
services:
rsync-server:
restart: always
image: commanderhu/rsync-server
container_name: rsync-server
volumes:
- ./data/:/data/ #左邊路徑指定需要備份的路徑
ports:
- "874:873"
environment:
- RSYNC_IP=ip #本機(jī)地址
- RSYNC_PORT=874 #映射端口
- REMOTE_HOST_IP=ip #客戶端ip
- REMOTE_HOST_PORT=22023 #客戶端端口
- MAX_RESERVER_COUNT=3 #文件備份次數(shù)侥祭,不填則默認(rèn)15次
b. 啟動(dòng)
docker-compose up -d
c. 檢查
docker logs -f rsync-server
此時(shí)查看client端的rsync_list文件會(huì)自動(dòng)增加一條記錄
d. 備份
切換到備份機(jī)器:
docker restart rsync-client
備份機(jī)等待設(shè)定的間隔時(shí)間后會(huì)將注冊(cè)的主機(jī)備份一遍叁执,同時(shí)會(huì)保存同步文件和壓縮包
備份文件的權(quán)限和原文件一致
容器會(huì)檢查主機(jī)資源茄厘,資源小于設(shè)定值時(shí)會(huì)優(yōu)先刪除老文件,再備份新文件
可以設(shè)置每個(gè)文件備份的次數(shù)
設(shè)置保留文件的天數(shù)
4. 源碼
需要源碼的可以私信我