每分钟192.168.0.3拉取192.168.0.2的/opt/www/到/opt/www/
192.168.0.3执行crontab -e
* * * * *rsync -vazup --delete --ignore-errors --force --delete-excluded root@192.168.0.2:/opt/www/ /opt/www/


#生成 SSH 密钥对
简洁版(默认回车):ssh-keygen -t rsa
{详解:
	ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

	-t rsa: 指定密钥类型为 RSA。
	-b 4096: 指定密钥长度为 4096 位。
	-C "your_email@example.com": 为密钥添加注释,通常是你的邮箱地址。

当提示输入文件名时,按回车键使用默认路径(/root/.ssh/id_rsa)。
当提示输入密码短语时,可以按回车键留空(如果不需要密码保护)。
生成的密钥对将保存在 /root/.ssh/id_rsa(私钥)和 /root/.ssh/id_rsa.pub(公钥)。
}

#配置免密登录
在服务器 A 上,将公钥复制到服务器 B
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.10.9
在服务器 B 上,将公钥复制到服务器 A
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.10.1

#配置lsyncd
在服务器 A(172.16.10.1)上的配置文件 /etc/lsyncd.conf:
settings {
  logfile      = "/var/log/lsyncd.log",  -- 指定 lsyncd 的日志文件路径,用于记录 lsyncd 的运行日志
  pidfile      = "/var/run/lsyncd.pid",  -- 指定 lsyncd 的 PID 文件路径,用于记录 lsyncd 进程的 PID
  statusFile   = "/var/log/lsyncd.status",  -- 指定 lsyncd 的状态文件路径,用于记录 lsyncd 的当前状态
  inotifyMode  = "CloseWrite",  -- 指定 inotify 的事件类型,这里设置为在文件关闭并写入完成时触发事件
  maxProcesses = 8,  -- 指定最大并发进程数,用于限制同时运行的 rsync 进程数量
}

sync {
  default.rsync,  -- 使用 rsync 作为默认的同步模式
  source       = "/opt/www/",  -- 本地要同步的源目录路径
  target       = "root@192.168.0.2:/opt/www/",  -- 远程目标目录,格式为 user@host:/path
  delay        = 1,  -- 延迟时间,以秒为单位,表示在检测到文件变化后等待多少秒再进行同步
  init         = false,  -- 禁用初始同步,lsyncd 启动时不会立即进行一次全量同步
  rsync = {
    binary   = "/usr/bin/rsync",  -- 指定 rsync 的二进制文件路径,默认是 /usr/bin/rsync
    archive  = true,  -- 启用归档模式,相当于 rsync 的 -a 选项,递归同步并保持各种属性(如权限、时间戳等)
    compress = true,  -- 启用压缩,相当于 rsync 的 -z 选项,减少传输的数据量
    bwlimit  = 50000,  -- 设置带宽限制,以 KB/s 为单位,这里限制为 5000 KB/s
    rsh      = "ssh -i /root/.ssh/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"  -- 使用 SSH 进行连接,并指定私钥路径和禁用主机>密钥检查
  }
}

在服务器 B(172.16.10.9)上的配置文件 /etc/lsyncd.conf:
settings {
  logfile      = "/var/log/lsyncd.log",  -- 指定 lsyncd 的日志文件路径,用于记录 lsyncd 的运行日志
  pidfile      = "/var/run/lsyncd.pid",  -- 指定 lsyncd 的 PID 文件路径,用于记录 lsyncd 进程的 PID
  statusFile   = "/var/log/lsyncd.status",  -- 指定 lsyncd 的状态文件路径,用于记录 lsyncd 的当前状态
  inotifyMode  = "CloseWrite",  -- 指定 inotify 的事件类型,这里设置为在文件关闭并写入完成时触发事件
  maxProcesses = 8,  -- 指定最大并发进程数,用于限制同时运行的 rsync 进程数量
}

sync {
  default.rsync,  -- 使用 rsync 作为默认的同步模式
  source       = "/opt/www/",  -- 本地要同步的源目录路径
  target       = "root@172.16.10.1:/opt/www/",  -- 远程目标目录,格式为 user@host:/path
  delay        = 1,  -- 延迟时间,以秒为单位,表示在检测到文件变化后等待多少秒再进行同步
  init         = false,  -- 禁用初始同步,lsyncd 启动时不会立即进行一次全量同步
  rsync = {
    binary   = "/usr/bin/rsync",  -- 指定 rsync 的二进制文件路径,默认是 /usr/bin/rsync
    archive  = true,  -- 启用归档模式,相当于 rsync 的 -a 选项,递归同步并保持各种属性(如权限、时间戳等)
    compress = true,  -- 启用压缩,相当于 rsync 的 -z 选项,减少传输的数据量
    bwlimit  = 50000,  -- 设置带宽限制,以 KB/s 为单位,这里限制为 5000 KB/s
    rsh      = "ssh -i /root/.ssh/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"  -- 使用 SSH 进行连接,并指定私>钥路径和禁用主机密钥检查
  }
}


systemctl restart lsyncd
systemctl status lsyncd
#开机自启动
systemctl enable lsyncd