如何使用rsync工具来同步2台linux服务器的文件

4 篇文章 0 订阅

如何使用rsync工具来同步2台linux服务器的文件

一、 简单使用

1. 本地同步

rsync [OPTION...] SRC...[DEST]

举例

rsync /etc/hosts /opt
rsync -avz /opt /mnt #相当于cp -ap /opt /mnt
rsync -avz --delete /old/ /tmp/		#相当于rm命令

2. 两台主机间同步

推送(从当前主机推送到另一台主机)

rsync -avzP -e 'ssh -p 22' /etc/  root@192.168.197.129:/tmp/

-e ‘ssh -p 22’ 表示以ssh的方式通过22端口推送,如果不写则默认端口为22,也可以不使用这一选项。执行后会提示输入root@192.168.197.129的密码,输入正确的密码后才执行文件同步操作,即将当前主机的/etc目录同步到192.168.197.129主机下的tmp目录。

考虑带宽限制

rsync -avz dbfile 192.168.197.129:/backup #没有给带宽做限制
rsync -avz --bwlimit=100 dbfile 192.168.197.129:/backup   #限定了带宽

拉取

rsync -avzP -e 'ssh -p 22' root@192.168.197.129:/opt /tmp

表示从远程192.168.197.129的/opt目录(包含目录本身)拷贝到本地目录/tmp下
执行后同样会提示输入用户密码,输入正确的密码后才执行文件同步操作。
-e ‘ssh -p 22’ 表示通过ssh通道传输数据,可省略。

二、 以守护进程方式同步数据

1. 环境

主机网络参数设置:

主机名网卡eth0用途角色代号
chensiqi192.168.197.133同步源rsync客户端B-Server
chensiqi2192.168.197.129同步目的地rsync服务端A-Server

2. 需求

把B-Server主机的/home/b_source/目录下的文件同步到A-Server主机上的/home/a_dest/目录下。

3. 部署

3.1 A-Server的部署
3.1.1 编辑rsync服务的配置文件

首先确认软件是否安装:

rpm -qa rsync

显示的内容大致如:

rsync-3.0.6-12.el6.x86_64

编辑/etc/rsyncd.conf文件,如果不存在则重新创建,内容如下:

uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[backup]
path = /home/a_dest/
ignore errors
read only = false
list=false
hosts allow = 192.168.197.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_user1
secrets file = /etc/rsync.password

上面的backup小节配置了同步的目的路径“/home/a_dest/”,所以还要创建该路径

mkdir -p /home/a_dest

上面还配置了rsync的用户名为rsync_user1,以及存储该用户的密码文件为 /etc/rsync.password.

3.1.2 添加rsync程序的linux用户
useradd -M -s /sbin/nologin rsync

验证

cat /etc/passwd | grep rsync
cat /etc/group | grep rsync
3.1.3 启动rsync服务
rsync --daemon

验证

netstat -antup | grep rsync
3.1.4 更改同步目的路径的拥有者
chown -R rsync /home/a_dest
chgrp -R rsync /home/a_dest

验证

ls -ld /home/a_dest
3.1.5 添加rsync程序的账户名和密码
echo "rsync_user1:123456" >/etc/rsync.password
chmod 600 /etc/rsync.password		#必须为600,否则失败

添加了用户名rsync_user1及密码123456。
注意   上面的/etc/rsync.password文件权限值必须配置为600,否则后面的同步操作不会成功!!!

3.1.6 设置开机启动
echo "rsync --daemon" >> /etc/rc.local

注意:

  • 当然还可以用chkconfig rsync on命令,但是必须要编写适合chkconfig操作的脚本才行。

如何重启rsync服务?

pkill rsync #关闭rsync服务
rsync --daemon #启动rsync服务

至此rsync服务器端A-server配置完毕。

3.2 B-Server的部署

先确保rsync已经安装

rpm -qa rsync
3.2.1 配置rsync的密码文件
echo "123456" > /etc/rsync.password
chmod 600 /etc/rsync.password 		#必须为600,否则失败

至此rsync客户端B-Server配置完毕。

4. 同步

4.1 推送

在B-Server上执行:把/home/b_source目录的文件推送到A-Server上的“backup”小节配置的目录(即“/home/a_dest/”)。

rsync -avz /home/b_source/ rsync_user1@192.168.197.129::backup --password-file=/etc/rsync.password
4.2 同步推送

在B-Server上执行:把/home/b_source目录的文件同步推送到A-Server上的“backup”小节配置的目录(即“/home/a_dest/”)。

rsync -avz --delete /home/b_source/ rsync_user1@192.168.197.129::backup --password-file=/etc/rsync.password 

命令说明:
–delete :表示同步增,删,改(文件内容出现变化,也会同步的)

5. 扩展

5.1 拉取

在B-Server上执行:拉取A-Server上的backup小节配置的目录(即“/home/a_dest/”)文件到B-Server上的/home/b_source目录下。

rsync -avzP rsync_user1@192.168.197.129::backup /home/b_source/ --password-file=/etc/rsync.password

和推送相比,只是两个目录换了个位置。

5.2 同步拉取

在B-Server上执行:同步拉取A-Server上的backup小节配置的目录(即“/home/a_dest/”)文件到B-Server上的/home/b_source目录下。

rsync -avz --delete rsync_user1@192.168.197.129::backup /home/b_source/ --password-file=/etc/rsync.password 

命令说明:
–delete :表示同步增,删,改(文件内容出现变化,也会同步的)
与同步推送相比:只是客户端目录放在了服务器端的后边。

5.2 排除文件

若需要排除文件,可以使用–exclude来设置:

rsync -avz --exclude=a --exclude=chen/3 --exclude=chen/4 rsync_user1@192.168.197.129::backup /home/b_source/ --password-file=/etc/rsync.password 
5.3 通过列表文件实现排除

若需要排除文件,还可以使用–exclude-from来设置:

rsync -avz --exclude-from=/root/exclude.txt rsync_user1@192.168.197.129::backup /home/b_source/ --password-file=/etc/rsync.password

命令说明:
–exclude-from=文件的绝对路径 :引用一个排除列表,列表里只需要输入排除的文件名即可,每行一个文件名,如:

[root@xxx home]# cat /root/exclude.txt 
my.log
my.ignore
my.txt
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真心无著

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值