1.需求:
我们需要实现/home/root/tmp/A 和/home/root/tmp/B的文件同步
2.实现方法:
2.1 创建测试目录
mkdir -p /tmp/A
mkdir -p /tmp/B
2.2 创建sync-files-test.path与sync-files-test.service文件
[root@k8s-master system]# cd /etc/systemd/system
#创建sync-files-test.path,监控/home/root/tmp/A目录的变化,有变化时执行sync-files-test.service
[root@k8s-master system]# cat sync-files-test.path
[Unit]
Description=monitor files and sync
[Path]
PathChanged=/home/root/tmp/A
unit=sync-files-test.service
#创建sync-files-test.service,执行rsync命令,将/home/root/tmp/A/的内容同步到/home/root/tmp/B/目录下
[root@k8s-master system]# cat sync-files-test.service
[Unit]
Description=sync-files-test.service
[Service]
ExecStart=/usr/bin/rsync -av --delete /home/root/tmp/A/ /home/root/tmp/B/
2.3 启动sync-files-test.path服务,开启监控
[root@k8s-master system]# systemctl start sync-files-test.path
[root@k8s-master system]# systemctl status sync-files-test.path
● sync-files-test.path - monitor files and sync
Loaded: loaded (/etc/systemd/system/sync-files-test.path; static; vendor preset: disabled)
Active: active (waiting) since 二 2024-08-20 09:57:31 CST; 5s ago
8月 20 09:57:31 k8s-master systemd[1]: Started monitor files and sync.
3.测试:
#检查/home/root/tmp/A和/home/root/tmp/B文件
[root@k8s-master system]# ls -la /home/root/tmp/A
总用量 0
drwxr-xr-x 2 root root 6 8月 20 09:57 .
drwxr-xr-x 4 root root 24 8月 20 09:57 ..
[root@k8s-master system]# ls -la /home/root/tmp/B
总用量 0
drwxr-xr-x 2 root root 6 8月 20 09:57 .
drwxr-xr-x 4 root root 24 8月 20 09:57 ..
#创建test文件
[root@k8s-master system]# echo hello >/home/root/tmp/A/test
#查看/home/root/tmp/A/test和/home/root/tmp/B/test,一致说明文件已同步
[root@k8s-master system]# cat /home/root/tmp/A/test
hello
[root@k8s-master system]# cat /home/root/tmp/B/test
hello
#追加test文件,然后分别查看
[root@k8s-master system]# echo "test" >>/home/root/tmp/A/test
[root@k8s-master system]# cat /home/root/tmp/A/test
hello
test
[root@k8s-master system]# cat /home/root/tmp/B/test
hello
test