主机:
目标:每天凌晨3点从master 上/www增量的复制到backup上。
在Backup上配置主机的免密登录,请参考 SSH 公钥免密登录[1]
在主机和从机上都安装Rsync
yum install -y rsync
注意以下该步骤仅需在从机Backup 配置,主机不需要。
在从机Backup上创建文件同步服务
vi /lib/systemd/system/filesync.service
填入下列内容,注意修改 rsync 的同步的源地址主机IP部分
[Unit]
Description=rsync file sync service.
[Service]
User=root
Type=oneshot
ExecStart=/usr/bin/bash -c 'rsync -av --delete root@192.168.0.98:/www/ /www'
[Install]
WantedBy=multi-user.target
root@192.168.0.98 部分请替换为具体的Master主机地址和用户。--delete 表示同步删除,详见 rsync 用法教程[2]注意请先完成 从机Backup免密登录主机Master的配置,否则该服务无效。
重新加载服务
systemctl daemon-reload
上面的服务实现了:从master 上/www增量的复制到backup上。
注意该步骤仅需在从机Backup 配置,主机不需要。
为了实现:每天凌晨3点,需要创建一个定时器。
这里使用Systemd的timer服务
创建如下文件,文件名可自定义,后缀固定为.timer
vi /lib/systemd/system/filesync.timer
填入下面内容
[Unit]
Description=filesync.service timer.
[Timer]
Unit=filesync.service
OnCalendar=*-*-* 03:00:00
[Install]
WantedBy=multi-user.target
[Timer]中的Unit的值需要和上一步创建的服务文件名称一致。OnCalendar 的参数配置可以参考 freedesktop . systemd.timer.html若需要每隔一段时间就触发一次,可以使用
OnUnitActiveSec参数替代OnCalendar参数,该参数指定该单元上次执行后,等多少时间再次执行,例如:OnUnitActiveSec=10m表示程序启动后每隔10分钟执行一次定时器。
重新加载服务
systemctl daemon-reload
设置定时器开机自启动
systemctl enable filesync.timer
启动定时器
systemctl start filesync.timer
查看当前在运行的定时器,检验定时器是否生效
systemctl list-timers

定时器到时自动启动filesync.service服务,服务运行后可以通过下面命令查看,文件同步信息:
journalctl -f -u filesync.service

[1]. csdn . SSH 公钥免密登录 . cliven . 2022.10.13 . https://blog.csdn.net/q1009020096/article/details/125166499
[2]. 阮一峰博客 . rsync 用法教程 . 阮一峰 . 2020.8.26 . https://www.ruanyifeng.com/blog/2020/08/rsync.html
[3]. 阮一峰博客 . Systemd 定时器教程 . 阮一峰 . 2018.3.30 . https://www.ruanyifeng.com/blog/2018/03/systemd-timer.html
[4]. freedesktop . systemd.timer . https://www.freedesktop.org/software/systemd/man/systemd.timer.html#