一个文件同步工具,通过监听本地文件变更,同步到远端(s3)对象存储
1.8K
一个同步工具,可以监听本地文件变更,实时同步到远端(s3)对象存储
源代码:https://github.com/jorben/rsync-object-storage
sync.real_time.hot_delay配置项)sync.check_job.start_at配置项),便于指定在非繁忙时点开始定期同步sync.check_job.interval配置项),将按周期在start_at时点启动sync.real_time.enable和sycn.check_job.enable配置项)sync.ignore配置项)# 本地路径配置
local:
path: /data # 本地需要同步的路径,容器中则为所需同步的路径映射容器中的路径
# 远端对象存储配置
remote:
endpoint: cos.ap-guangzhou.myqcloud.com # 例如:cos.ap-guangzhou.myqcloud.com
use_ssl: true
secret_id: ${MY_SECRET_ID} # 可设置在环境变量中
secret_key: ${MY_SECRET_KEY} # 可设置在环境变量中
bucket: somebucket # 这里配置你的存储桶名称
region: ap-guangzhou # 这里配置存储桶所在区域代码,无区域可留空
path: / # 这里配置远端路径,桶根路径可配置为/
# 同步配置
sync:
# 是否启用实时同步(监听本地文件变更进行同步,仅同步服务运行期间发生变更的文件,可结合check_job实现全量同步)
real_time:
enable: true
hot_delay: 5 # 在该时间内反复触发变更的热点文件将在该配置的时间内仅最后做1次同步动作,单位分钟(可有效减少反复变更带来的流量消耗)
# 是否启用定期文件对账(扫描对比本地与远端文件差异进行同步)
check_job:
enable: true # 是否启用定时全量检查和同步(检查存在差异时会触发差异文件的同步)
interval: 24 # 文件对账频率间隔,单位小时
start_at: 3:00:00 # 文件对账启动时间(建议选在凌晨),将结合频率间隔配置定期执行
# 忽略不同步的文件和文件夹
ignore:
- .*.swp
- "*~"
- .DS_Store
- .ds_store
- .svn
- .git
- Thumbs.db
- .idea
log:
- writer: console
formatter: console
level: INFO
- writer: file
formatter: json
level: DEBUG
format_config:
time_fmt: "2006-01-02 15:04:05.000"
write_config:
log_path: "./log/ros_cos.log"
max_size: 100
max_age: 30
compress: true
version: "3.8"
name: ros
services:
ros:
container_name: ros
image: jorbenzhu/rsync-object-storage:latest
command: ["/app/ros", "-c", "/app/config.yaml"]
environment:
MY_SECRET_ID: #在这里配置你的对象存储SECRET_ID
MY_SECRET_KEY: #在这里配置你的对象存储SECRET_KEY
volumes:
- /etc/localtime:/etc/localtime:ro
- /data/ros/config.yaml:/app/config.yaml:ro #这里替换你的本地配置文件路径,映射为容器的/app/config.yaml路径
- /data/sync_dir:/data:ro #这里替换你需要同步的本地路径,映射为容器的/data路径
restart: always
遇到"too many open files"或"no space left on device"错误
原因可能是需要监听的目录数量超出了系统的配置数量,调整到合理数值可解决(docker容器环境需要调整宿主机的配置)
# Linux:
# 调整系统配置,数值可以依据自身情况调整
sudo sysctl fs.inotify.max_user_watches=102400 | sudo tee -a /etc/sysctl.conf
# 查询是否生效
cat /proc/sys/fs/inotify/max_user_watches
Content type
Image
Digest
sha256:d58be820c…
Size
6.3 MB
Last updated
over 2 years ago
docker pull jorbenzhu/rsync-object-storage