企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 使用rsync + crontab定时同步轨迹数据 **现状及问题:** > 1.redis只保存一天的终端电子教学日志轨迹信息 > 2.workflow每天会将redis里面的终端电子教学日志轨迹信息,持久化到磁盘上。 > 问题:因为workflow部署在web1上面,所以数据持久化到web1的磁盘上面,导致timing走haproxy应用链接到web2的时候,无法访问到轨迹数据。 解决方案:使用rsync + crontab定时同步轨迹数据 1. 安装rsync,web1和web2上面都需要安装。 ~~~ sudo apt-get install rsync ~~~ 2. 修改配置文件 配置文件只需要在目标机器上配置,对于我们就是web2(服务端)。 ~~~ #全局配置 uid = root gid = root #指定主机WEB2的用户id和组 port = 873 #默认端口是873 use chroot = no max connections = 10 #最大连接数 list = yes #是否可以列出文件列表 pid file = /var/run/rsyncd.pid #各类文件的存放 lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log #motd file = /etc/rsyncd.motd #欢迎文件,里面可以自己写欢迎语 hosts allow = 10.30.46.31 #允许访问的ip地址,这里是WEB1主机的地址 #hosts deny= #拒绝访问的ip #timeout= #超时时间设定 [data] #指定发布名,可以随意起,备份时可以用发布名代替具体路径 path = /data/track #指定文件目录所在位置,就是你要备份的主机WEB1上的目录 read only = no #ignore errors #忽略IO #auth users = root #说明进行同步的用户,可以不写 #secrets file = /etc/sery.pass #指定口令文件,如果用ssh可以不写,不然需要用这个进行验证 ~~~ ~~~ sudo chmod 600 /etc/rsyncd.conf ~~~ 3. 在web2上启动服务 ~~~ sudo /usr/bin/rsync --daemon --config=/etc/rsyncd.conf ~~~ > 后续工作: > 需要将rsync服务设置为开机自启动 3. 在web2执行同步测试 ~~~ rsync -avz -e 'ssh -p 33322' timing@10.30.46.31:/data/track /data ~~~ > 从web1上面将/data/track目录同步到web2的/data下面。 > 注意: > 这里的命令执行需要手动输入ssh(WEB1)的密码,如果定时任务,可以使用ssh免密码登陆。 4. 假设轨迹持久化每天4点可以完成 ~~~ 0 4 * * * /home/timing/shelles/rsync_track.sh > /home/timing/shelles/logs/track_`date +'%y%m%d'`.log ~~~ rsync_track.sh ~~~ #!/bin/bash # 将web2上的/data/track目录 同步到web1的 /data目录下 rsync -avz -e 'ssh -p 33322' timing@10.30.46.31:/data/track /data ~~~