数据同步方法-Linux (数据同步方法有哪些)

教程大全 2025-07-17 09:23:21 浏览

方案背景:A 服务器 和B服务器之间(可1对1,也可多对多,在此以简单的1对1举例)需要数据同步,此方案常用于远程灾备。

同步方案根据应用场景大约有两种,定时同步和实时同步。定时同步具有同步时间固定、实时性差、消耗资源较小的特点;实时同步具有实时性强、同步密集、较耗资源等特点。

1、安装软件:

yuminstallrsync-y

2、免密登录(也可使用明文采用模拟交互式登录方式,但是从安全角度出发还是建议使用免密登录):

ssh-keygen-trsa

生成后可以进入目录cd ~/.ssh/ 把生成的密钥~/.ssh/id_rsa.pub内容复制到远程主机的/root/.ssh/authorized_keys中

在这里很多同学对以上的操作为什么就不用输入密码的问题感到好奇,了解免密登录的同学可以跳过这段介绍。这里介绍下免密登录的原理:

rsa又称非对称密钥算法,对应的是对称密钥算法。

所谓对称密钥算法就是A和B通信,为了双方能确认对方的身份,A和B约定一个双方都知道的密钥k来确定身份如下:

A => (mk) B A发送m明文和K密钥跟B,B确认K密钥和之前A约定的一样,就能确定A的身份是真实的。反之B到A的通信也是如此。

非对称加密需要两个密钥:公钥 (publickey) 和私钥 (privatekey)。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。

所以以上的操作把A服务器的公钥共享跟了B服务器(远程主机),所以A服务器登录B服务器就不再需要传统的交互式输入密码登录,B服务器能通过A服务器的公钥而确认A服务器的真实性(私钥)。

[root@localhost~][root@localhost.ssh]id_rsaid_rsa.pubknown_hosts
数据同步方法

3、编写shell脚本

[root@localhost~]rsync-avz-e[emailprotected]:/XXX/pub/data/

注意:rsync的数据同步分为拉和推两种不同的动作,在编写脚本之前,一定要测试命令是否能正常执行。

4、crontab定时执行配置(每天3点执行脚本)

到此,定时同步就配置好了。

Linux 数据同步方案Linux 数据同步方案

Inotify简介

Inotify 是一个 Linux特性,从版本2.6.13开始提供,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。

开始配置Inotify

注:在开始之前需要在服务器A和B上都安装好rsync。

1、在服务器B上调整inotify内核参数vim /etc/sysctl.conf

fs.inotify.max_queued_events=16384fs.inotify.max_user_instances=1024fs.inotify.max_user_watches=1048576

2、使调整inotify内核参数立刻生效

3、安装Inotify-Tool工具

#先安装扩展包源,否则inotify-tools找不到yuminstallepel-releaseyuminstallinotify-tools

4、打开两个终端,一个终端执行创建删除等操作,另一个执行Inotify-Tool工具,测试Inotify-Tool工具时候正常

inotifywait-mrq-emodify,create,move,delete/var/www/inotifywait:用于持续监控,实时输出结果inotifywatch:用于短期监控,任务完成后再出结果

5、编写脚本

vim /root/tongbu.sh

INOTIFY_CMD=RSYNC_CMD="rsync-avz-e'ssh-p22'/root/cs/[emailprotected]:/root/cs/"|DIRECTORYEVENTFILE[$(pgreprsync|wc-l)-le0];

注:这里要特别注意,逻辑关系不要搞混了,是B服务器推送跟A服务器。

6、添加开机自动后台自动运行,编辑/etc/profile文件,在最后一行加入下面语句

/bin/bash/root/tongbu.sh&

到此定时同步和实时同步都讲解完毕。根据不同的场景应用不同的方案,需要灵活应对,特别要注意一点的是。实时同步的方案,监控目录千万不能设置成日志目录,不然服务器cpu飙升很有可能会宕机。


如何将本地文件通过终端上传到linux服务器

可以使用scp命令,scp命令的协议基于ssh,只要远程的Linux服务器开放了ssh服务,就可以直接在终端上传任何文件到服务器的目录。

HA一定要用共享存储吗?

回复 w8875cu 楼主你把问题扩散的太远了。 首选,十分建议先去了解下存储+应用服务器部署HA的框架,及原理;这边有个帖子,希望对你有帮助:就像楼上给你的建议,如果没有共享存储,你的需求很难实现。 并且只用一台共享存储实现应用主机实时切换,在我们往常的case之中,也不认为是高可用方案。 但是确实可以降低你的预算,解决应用主机的单点故障。 有一点很重要,你的那台存储会造成单点故障。 我们的partner跟用户沟通时候,围绕高可用这个话题强调的是:在方案部署之后,能够保持业务连续性,任何设备出现单点故障,生产业务无需停止或中断。 方便讲一下,你未来2年内,数据所需要的大概空间吗?以TB为单位。

Linux 下 halt,poweroff,shutdown 有什么区别

在linux下一些常用的关机/重启命令有shutdown、halt、reboot、init及poweroff,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的。 命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。 因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。 而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。 并且login指令会被冻结﹐即新的用户不能再登录。 直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。 这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。 这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。 shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。 Runlevel 0被用来停机〔halt〕﹐runlevel6是用来重新激活〔reboot〕系统﹐而runlevel1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。 要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。 shutdown 参数说明:[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。 [-r] 重启计算器。 [-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。 [-h] 关机后关闭电源〔halt〕。 [-n] 不用init﹐而是自己来关机。 不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。 [-c] cancel current process取消目前正在执行的关机程序。 所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。 [-f] 在重启计算器〔reboot〕时忽略fsck。 [-F] 在重启计算器〔reboot〕时强迫fsck。 [-time] 设定关机〔shutdown〕前的时间。 —-最简单的关机命令其实halt就是调用shutdown -h。 halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。 参数说明:[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。 [-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。 [-d] 不写wtmp纪录〔已包含在选项[-n]中〕。 [-f] 没有调用shutdown而强制关机或重启。 [-i] 关机〔或重启〕前﹐关掉所有的网络接口。 [-p] 该选项为缺省选项。 就是关机时调用poweroff。 的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。 它的参数与halt相差不多。 是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。 shutdown就是使用这种机制。 init定义了8个运行级别(runlevel),init 0为关机﹐init1为重启。 关于init可以长篇大论﹐这里就不再叙述。 另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit-iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。 在关闭计算机操作系统之后,最后还会发送ACPI指令,通知电源,最后切断电源供应,当然路由器等嵌入系统不支持ACPI的,所以这个无效。 Linux 下 halt,poweroff,shutdown 有什么区别

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐