1. 环境
- 操作系统:CentOS 7
主机:
- master 192.168.0.98
- backup 192.168.0.166
目标:每天凌晨3点从master
上/www
增量的复制到backup
上。
2. 配置主机的免密登录
在Backup上配置主机的免密登录,请参考 SSH 公钥免密登录[1]
3. Rsync 服务
在主机和从机上都安装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
上。
4. 定时器
注意该步骤仅需在从机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
重新加载服务
systemctl daemon-reload
设置定时器开机自启动
systemctl enable filesync.timer
启动定时器
systemctl start filesync.timer
查看当前在运行的定时器,检验定时器是否生效
systemctl list-timers
5. 查看文件同步日志
定时器到时自动启动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#