contos7.2版本中rsync 3.1.2实现文件同步备份的方法

配置分为两大部分,客户端和服务端

一.服务器端配置

联网安装防护进程:

yum -y install xinetd

 编译安装rsync3.1.2 官方网站https://rsync.samba.org/

 解压缩包并安装

tar -zxvf rsync-3.0.9.tar.gz
tar -zxvf rsync-patches-3.0.9.tar.gz
cd rsync-3.0.9  #定位到文件
./configure     #选中文件夹下的configure文件
make
make install

*注:离线状态下,会提示checking for gcc...no等信息。原因是缺少gcc环境包。需配置本地yum,安装该环境包,地址:/etc/yum.repos.d/CentOS-Media.repo

将文件中原有代码注释掉(也可清理掉该文件夹下其他配置文件,不包括文件夹,不推荐这样),添加本地配置并将iso系统光盘解压至目录/home/centos7/下

[LocalYum]
name=LocalYum
baseurl=file:///home/CentOS7.2/Media/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

然后,重新清理

yum clean all
yum makecache

即可使用本地的yum进行基础的依赖包安装

*同时也可以在kvm虚拟机中选择虚拟磁盘的方式挂载yum,需先在该虚拟机所在实体机的服务器放入系统盘,在kvm虚拟机中选择并找到iso文件,同时虚拟机中的系统配置好CentOS-Media.repo

[LocalYum]
name=LocalYUm
baseurl=file:///mnt/cdrom/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

后还需使用命令重新挂载一下,若使用KVM虚拟机中导入源也需要重新挂载iso文件。

mount -t auto /dev/cdrom /mnt/cdrom

 

设置防护进程xinetd的配置文件(不存在就自己生成一个)

vi /etc/xinetd.d/rsync

将其修改成

  service rsync
  {
  disable = no
  socket_type = stream
  wait = no
  user = root
  server = /usr/bin/rsync
  server_args = –daemon
  log_on_failure += USERID
  }

修改后启动 xinetd防护进程

service xinetd restart

启动后防火墙要打开端口,其要允许的端口是 873(注:centos7防火墙默认使用的是firewall不是iptables)

firewall-cmd --zone=public --add-port=873/tcp --permanent(--permanent永久生效,没有此参数重启后失效)
systemctl restart firewalld.service
#重新载入服务
firewall-cmd --reload #更新防火墙规则

*删除一个防火墙允许的端口(测试用)firewall-cmd --zone= public --remove-port=80/tcp --permanent

*关闭防火墙(测试用) systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止开机启动
systemctl enable firewalld.service #开机启动

查看目前端口状态命令 (注:杀死进程命令 kill ...)

netstat -ntpl

设置rsync的的配置文件(不存在就自己生成一个)

vi /etc/rsyncd.conf 

将其修改成(注:该文件的配置跟版本有很大关系,该配置文件针对rsync 3.1.2,使用时将以下代码中中文注释去除)

# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# configuration example:

 uid = root                #设置运行rsync 进程的用户
 gid = root
 use chroot = no
 max connections = 4
 pid file = /var/run/rsyncd.pid
 log file = /var/log/rsyncd.log  #此文件定义完成后系统会自动创建,出错的话可以从此文件查看报错记录
 exclude = lost+found/
 transfer logging = yes
 timeout = 900
 ignore nonreadable = yes      #同步时跳过没有权限的目录
 dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2  #传输时不压缩的文件

[test] #模块名,后续要与客户端中同步命令模块名保持一致
path = /home/www #需要同步的目录
comment = test export area #与模块名一致

ignore errors 
read only = true
#write only = yes 
list = false 

auth users = root  #客户端获取文件的身份要用到的用户名,此用户并不是本机中确实存在的用户,也可是本机存在的用户名,如果多个,空格分隔开
secrets file = /etc/rsyncd.secrets   #配置密码的文件

hosts allow = *   #允许的客户端ip * 允许所有客户端连接 为了安全起见需要设置指定ip

修改配置密码文件(不存在就自己生成一个)

vi /etc/rsyncd.secrets

将其修改成

root:密码  #用户名:密码,一行一个,密码最好别和系统密码一样。用户名就是上面设置的auth users里面的用户名

然后切记修改改密码文件的权限(密码文件权限属性要设得只有属主可读)

chown root:root /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets

查看是否修改成功

ll /etc/rsyncd.secrets
未修改之前显示:
-r-------. 1 root root 12 5\u6708  11 19:10 /etc/rsyncd.secrets
修改成功显示:
-rw-------. 1 root root 12 5\u6708  11 19:10 /etc/rsyncd.secrets

重新启动rsync服务(不行的话,查看rsyncd.log文件,kill掉服务,重新执行以下代码)

  rsync --daemon --config=/etc/rsyncd.conf
  systemctl start rsyncd.service
  systemctl enable rsyncd.service

二.client 端进行同步

安装rsync

yum -y install rsync

客户端建立密码文件

vi /etc/rsyncd.passwd

将其修改成

XXXXXX  #密码,与服务端设置的密码相同,就是通过这个密码连接服务端的

然后切记修改改密码文件的权限(密码文件权限属性要设得只有属主可读)

chmod 600 /etc/rsyncd.passwd 

开始同步

rsync -vzrtopgu --progress --delete --password-file=/etc/rsyncd.passwd root@192.xx.xx.xx::test /www/w_demo
这个命令行中 -vzrtopg 里的 
v 是 verbose,z 是压缩传输,r 是 recursive,topg 都是保持文件原有属性如属主、时间的参数。u 是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步。 – progress 是指显示出详细的进度情况, – delete 是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
root 为auth users设置的用户名
192.xx.xx.xx 为服务端ip
test 为服务端设置的模块名
/www/w_demo 为客户端存放的地址
注:若增加不同步文件(千万注意后面的空格)
例如忽略
t.html
rsync -vzrtopgu --progress --exclude 't.html' --password-file=/etc/rsyncd.passwd root@192.XX.XX.XX::test /www/w_demo

3.自动同步,客户端制定计划任务

安装crontab(一般自带)

yum install vixie-cron
yum install crontabs
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
 
    

查看crontab服务状态

service crond status

 写一个crontab自执行参数的配置文件

vi /tmp/rsyncd.sh

添加执行代码

crontab -e

在编辑器中加入crontab自执行参数的配置文件,* * * * * 参数为每分钟执行一次,相关说明见crontab文件或查询网上相关资料(注意空格)

* * * * * sh /tmp/rsyncd.sh

此时,自动同步完成。若互为备份,同理配置相关文件。

 
posted on 2017-05-11 11:33 愤怒的猴子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liujiaqi2017/p/6839333.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值