rsync实现两台服务器上的实时同步
rsync实现两台服务器上的实时同步--delete
服务端:centos-4 192.168.5.128
客户端:centos-3 192.168.5.132
1、创建{1..10}.txt文件在a目录下
[root@centos-4 tmp]# rm -rf a
[root@centos-4 tmp]# mkdir a
[root@centos-4 tmp]# cd a
[root@centos-4 a]# touch {1..10}.txt
[root@centos-4 a]# ls
10.txt 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
2、同步到远端/tmp/a目录下
因为实在实现不了--password-file的方式同步就做了一个免密码登录
[root@centos-4 a]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
68:05:51:21:2f:e5:b8:a5:2a:99:5f:23:1a:28:f5:9b root@centos-4
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
| +o+. |
| B |
| o = |
| B |
| . = S |
| o + o |
|o = + o |
|. = = . |
| . E |
+-----------------+
[root@centos-4 a]# ssh-copy-id centos-3
root@centos-3's password:
Now try logging into the machine, with "ssh 'centos-3'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[root@centos-4 a]#
配置完私钥后.ssh/下会多了一个authorized_keys 文件
[root@centos-3 .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1vNA0sHBa4FFnMINAj6FM+FGInAP2+eIQ1JSIXJeRWOfM0KyLS3Nn5LzxvENBPrjJs1RR2x4Lhnuy0YL0Qy+wZLdcEIufZWcpRjDkLAhvgQjF7Mivd7mFhfPJ/uKUB/7Di4V/GzaW2SaG4ZWafFyB8igsBqnfw4wu0NyCVAjlpSe6tR1jao5MRMp8+6nksYHyHH8wafdGglF67cusk5fk9Kd0c4rSoiTjUX4EsREuE7mRBnK6UsSjvnJSsIHKYzDwEdB9ix+flTd9znPgEukWO85WN0h4wjqM8BAURRLDQnxKa0b9m+TrYsJnjr5xemj/Gr3q905ZWdoIDsupDNsLw== root@centos-4
同步两台服务器/tmp/a目录
[root@centos-4 a]# rsync -avpz /tmp/a root@centos-3:/tmp/
sending incremental file list
a/
a/1.txt
a/10.txt
a/2.txt
a/3.txt
a/4.txt
a/5.txt
a/6.txt
a/7.txt
a/8.txt
a/9.txt
sent 513 bytes received 206 bytes 479.33 bytes/sec
total size is 0 speedup is 0.00
查看客户端的centos-3服务器/tmp/a已经同步
[root@centos-3 tmp]# ls
a pear zabbix_agentd.log
cml pulse-gvsEPtT6wF1A zabbix_agentd.pid
gconfd-root pulse-ofsu0uqNK8ia zabbix_server.log
hsperfdata_root sess_9262c75f9c8625064dfabb6f1ffe9b1b zabbix_server.pid
keyring-8nmh6u sess_9pdslag3gffnplr3oh0mucvrr6
keyring-c6WZng yum.log
[root@centos-3 tmp]# cd a
[root@centos-3 a]# ls
10.txt 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
[root@centos-3 a]#
3、删除1.txt文件
[root@centos-4 a]# ls
10.txt 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
[root@centos-4 a]# rm -rf 1.txt
[root@centos-4 a]# ls
10.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
[root@centos-4 a]#
4、后面测试,当本地主机少了一个文件。而远端主机没有这个文件,删除远端主机的文件。
[root@centos-4 a]# rsync -avpz --delete /tmp/a root@centos-3:/tmp/
sending incremental file list
a/
deleting a/1.txt##显示删除了1.txt同步两台服务器的目录
sent 150 bytes received 16 bytes 332.00 bytes/sec
total size is 0 speedup is 0.00
[root@centos-4 a]#
检查客户端centos-3的目录已经少了1.txt文件,代表已经同步成功
[root@centos-3 a]# ls
10.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
[root@centos-3 a]#
5、每过1min监听这些目录,当发现本地和远程不一致,就再次同步
写一个shell的脚本执行同步两边的/tmp/a目录
[root@centos-4 ~]# vim rsync.sh
#!/bin/bash
rsync -avpz --delete /tmp/a root@centos-3:/tmp/
[root@centos-4 ~]# chmod a+x rsync.sh
测试脚本:
[root@centos-4 ~]# cd /tmp/a
[root@centos-4 a]# ls
10.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
[root@centos-4 a]# rm -rf 2.txt
[root@centos-4 a]# ls
10.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
[root@centos-4 a]# cd
[root@centos-4 ~]# ./rsync.sh
sending incremental file list
a/
deleting a/2.txt##表示脚本已经生效
sent 139 bytes received 16 bytes 310.00 bytes/sec
total size is 0 speedup is 0.00
[root@centos-4 ~]#
这样做执行脚本是还是会输出信息,所以改了一下
[root@centos-4 ~]# vim rsync.sh
#!/bin/bash
rsync -avpz --delete /tmp/a root@centos-3:/tmp/ >> /dev/null
为了实现实时同步服务端和客户端的/tmp/a目录,配置每1min执行一次命令
[root@centos-4 ~]# crontab -e
*/1 * * * * rsync -avpz --delete /tmp/a root@centos-3:/tmp/ >> /dev/null
crontab: installing new crontab
测试1min后是否可以实时同步目录,删除3.txt
[root@centos-4 a]# rm -rf 3.txt/
[root@centos-4 a]# ls
10.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
过了一分钟后查看centos-3的/tmp/a目录下3.txt有没有删除,最后同步
[root@centos-3 a]# ls
10.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
[root@centos-3 a]#
转载于:https://blog.51cto.com/legehappy/1965477
rsync实现两台服务器上的实时同步相关推荐
- 两台服务器双向同步文件,远程同步文件 两台服务器上
远程同步文件 两台服务器上 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...
- linux同步某台服务器,linux 两台服务器之间开机自动同步指定目录下的文件
linux 两台服务器之间开机自动同步指定目录下的文件 服务器B(172.17.166.11)上开机或者重启会自动拉取服务器A(172.17.166.10)上指定目录下所有文件 1.创建服务器B到服务 ...
- mysql两台服务器怎么做数据同步_两台mysql服务器实现双机互备配置并测试数据同步...
对于实现两台机子的互备配置,本文作出了详细的介绍,之后的测试数据同步,在10.168.1.44服务器数据库里修改一条数据, 可以看到数据已经同步过来了.反过来,修改10.168.0.126的数据,也可 ...
- mysql两台服务器怎么做数据同步_让两台服务器的MySQL数据同步(互为主从关系)...
网上找的大部分定义master-host的其实在新的MySQL中已经停用了,于是乎很悲剧的自己探索写出了这么一个东西 RedHat版本7.0 MySQL版本 5.7 服务器名称为假的!!! 服务器A: ...
- 两台服务器数据库怎么自动同步数据库,mysql 多台数据库同步server-id 重复导致的问题...
今天在设置一台新SLAVE数据库服务器后,发现MASTER和SLAVE服务器都出现大量TIME_WAIT数据库连接: tcp 0 0 19.2.33.156:56247 ...
- 第一次安装使用rsync服务进行两台服务器之间的文件同步,并排查客户端到服务端网络不通的问题。
下面为配置文件模板,rocky8没有这个配置文件,需要新建一个. [root@rocky8 ~]# vim /etc/rsyncd.confport=873log file=/var/log/rsyn ...
- nginx负载均衡两台服务器文件,Nginx之负载均衡 :两台服务器均衡(填坑)
第一步,两台服务器都要安装好Nginx和Tomcat,我这边的安装的是Nginx 1.16.1 Tomcat9: 第二步,安装完成之后,选择你要做均衡的那台服务器,,打开其Nginx 配置文件,在se ...
- DNS与Active Directory在两台服务器分别布署
以前dns与Ad布署时,一般习惯布署在同一台服务器上.以下一个视频,就是把DNS与Active Directory分别布署在两台服务器上. DEMO使用的测试域名为:virbiznet.com(Vir ...
- mysql同步到另一台服务器_mysql两台服务器主从同步
A服务器: host 192.168.1.101 port 3306 B服务器: host 192.168.1.102 port 3306 1,授权用户: A服务器 mysql>grant re ...
最新文章
- 刻意练习:LeetCode实战 -- 不同的二叉搜索树
- 数据库抽象层 PDO
- c++图形化界面_还能这样用?Linux下如何编译C程序?
- 《Adobe Acrobat X中文版经典教程》—第1章复 习
- abap中的弹出窗体函数
- 二叉树 -- 5.1.1 Binary Tree Level Order Traversal -2 -- 图解
- 【Sql查询数据】for 日、月、年
- LayaAir学习笔记
- 大型分布式订单系统项目实战
- dos 命令检索文件
- matlab geodetic2ecef,卫星轨道问题
- HTML5 之 Link 标签
- HTML蒙版css,浅谈图片蒙版效果-webkit-mask_html/css_WEB-ITnose
- 计算机 键盘启动,键盘开机如何打开键盘
- 可能是最漂亮的Spring事务管理详解
- windows编程之WM_MENUSELECT消息
- Linux驱动之platform设备驱动
- 【mcuclub】称重-HX711
- 【Python】爬取百度图片和必应图片
- [WallProxy] WallProxy
热门文章
- 英语语法---宾语详解
- 《计算中的上帝》读书笔记
- php校验苹果账号返回invalid_client
- Effective C++ 条款02:尽量使用const,enum,inline替换#define
- QQ圈子降级为“应用”后应关注其隐私设置
- malloc函数分配内存失败的原因及解决方法
- 网络作战训练模拟仿真管理系统软件
- win7用计算机名共享打印机,win7共享打印机需要输入用户名和密码该怎么办啊?...
- 前端年后面试真题,会80%直接进大厂
- 一些程序员必备的英语词汇及释义