• 安装inotify

 rpm -ivh inotify-tools-3.14-9.el7.x86_64.rpm

  • ssh免密远程访问同步目的地主机
  1. mkdir ~/.ssh
  2. ssh-keygen -t rsa -b 4096
  3. ssh-copy-id -i ~/.ssh/id_rsa.pub appuser@10.133.173.250
  • 编写同步脚本rsync.sh
1 #! /bin/bash
2 while inotifywait -rqq -e modify,move,create,delete,attrib /app/nfs/saicchain/oss               #监控文件或文件夹是否有修改
3 do 
4 #rsync -az --delete --password-file=/etc/rsync.password /app/data_20220113 appuser@10.140.96.6:/tmp/data         #监控A主机/abc/文件 同步到主机 /opt/
5 #rsync -azP --delete /app/data_20220113 appuser@10.140.96.6:/tmp/data
6 # rsync -avz /app/data_20210114/ appuser@10.140.96.6:/tmp/data/
7 rsync -avz --delete /app/nfs/saicchain/oss/ appuser@10.133.173.250:/app2/backup/oss_sync/
8 done
  • 守护进程
  1. 编写service文件

vim /usr/lib/systemd/system/rsyncd_shell.service

 1 [Unit]
 2 Description=sync oss file
 3 #after=network.target
 4 
 5 [Service]
 6 #ExecStart=/app/rsync.sh --supervised systemd
 7 ExecStart=/app/rsync.sh &
 8 #ExecStop=/home/myuser/redis-shutdown
 9 
10 Type=simple
11 User=appuser ###已appuser用户去执行rsync.sh
12 Group=appuser
13 Restart=always
14 #ExecStart=/app/rsync.sh
15 #RuntimeDirectory=rsynnc
16 #RuntimeDirectoryMode=0755
17 
18 
19 [Install]
20 WantedBy=multi-user.target
  1. systemctl daemon-reload
  2. systemctl enable rsyncd_shell
  3. systemctl start rsyncd_shell