在现代计算机日常使用中,数据备份显得尤为重要。而对于 linux 用户来说,rsync 命令是备份和同步文件的一种常用方法。它可以在不同系统之间或者本地文件夹之间实现快速高效的数据同步。
方案背景:A服务器和B服务器之间(可1对1,也可多对多,在此以简单的1对1举例)需要数据同步,此方案常用于远程灾备。
同步方案根据应用场景大约有两种,定时同步和实时同步。定时同步具有同步时间固定、实时性差、消耗资源较小的特点;实时同步具有实时性强、同步密集、较耗资源等特点。
一、定时同步
1、安装软件:
yum install rsync -y登录后复制
2、免密登录(也可使用明文采用模拟交互式登录方式,但是从安全角度出发还是建议使用免密登录):
ssh-keygen -t rsa登录后复制
生成后可以进入目录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 ~]# cd ~/.ssh/ [root@localhost .ssh]# ls id_rsa id_rsa.pub known_hosts登录后复制
3、编写shell脚本
[root@localhost ~]# vim back.sh #!/bin/sh rsync -avz -e 'ssh -p 22' root@x.x.x.x:/XXX/pub /data/登录后复制
注意:rsync的数据同步分为拉和推两种不同的动作,在编写脚本之前,一定要测试命令是否能正常执行。
4、crontab定时执行配置(每天3点执行脚本)
到此,定时同步就配置好了。
二、实时同步
Inotify简介
Inotify 是一个 Linux特性,从版本2.6.13开始提供,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。
开始配置Inotify
注:在开始之前需要在服务器A和B上都安装好rsync。
1、在服务器B上调整inotify内核参数,vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576登录后复制
2、使调整inotify内核参数立刻生效
sysctl -p登录后复制
3、安装Inotify-Tool工具
# 先安装扩展包源,否则inotify-tools找不到 yum install epel-release yum install inotify-tools登录后复制
4、打开两个终端,一个终端执行创建删除等操作,另一个执行Inotify-Tool工具,测试Inotify-Tool工具时候正常
inotifywait -mrq -e modify,create,move,delete /var/www/ inotifywait:用于持续监控,实时输出结果 inotifywatch:用于短期监控,任务完成后再出结果登录后复制
5、编写脚本
vim /root/tongbu.sh
#!/bin/bash INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /root/cs" RSYNC_CMD="rsync -avz -e 'ssh - p 22' /root/cs/ root@x.x.x.x:/root/cs/ " $INOTIFY_CMD | while read DIRECTORY EVENT FILE do if [ $(pgrep rsync | wc -l) -le 0 ] ; then $RSYNC_CMD fi done登录后复制
注:这里要特别注意,逻辑关系不要搞混了,是B服务器推送跟A服务器。
6、添加开机自动后台自动运行,编辑/etc/profile文件,在最后一行加入下面语句
/bin/bash /root/tongbu.sh &登录后复制
到此定时同步和实时同步都讲解完毕。根据不同的场景应用不同的方案,需要灵活应对,特别要注意一点的是。实时同步的方案,监控目录千万不能设置成日志目录,不然服务器cpu飙升很有可能会宕机。
总之,rsync 命令是一个非常强大、灵活和高效的文件同步和备份工具。无论是在日常使用还是在生产环境中,都能够发挥出其独特的优势。通过本文的介绍和实践,相信大家已经掌握了这个命令的基本用法和技巧。希望大家在今后的 Linux 使用中,能够更好地利用 rsync 命令来管理和保护自己的数据!
以上就是备份就是那么简单:教你轻松使用 Linux rsync 命令的详细内容,更多请关注慧达安全导航其它相关文章!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 备份就是那么简单:教你轻松使用 Linux rsync 命令
发表评论 取消回复