0%

Centos7下Rsync服务器搭建配置

之前写了个Windows下oracle多用户自动备份的脚本,这个备份完数据还是存在服务器本地的,如果系统宕机的话,数据还是没有了,这样的备份是没有意义滴;所以我们需要把数据转移到其他的存储上,常用的方式是使用Rsync工具来保持同步数据,接下来我们搭建一个简单的Rsync服务器。

安装部署rsync服务器

1
2
3
4
[root@sftp_server ~]# yum -y install rsync
[root@sftp_server ~]# mkdir -p /etc/rsyncd/
[root@sftp_server ~]# touch /etc/rsyncd/rsyncd.conf
[root@sftp_server ~]# ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf

配置rsync服务器

主配置文件/etc/rsyncd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@sftp_server ~]# cat /etc/rsyncd.conf 
uid = root
gid = root
use chroot = yes
hosts allow=192.168.10.33/24
hosts deny=*
max connections=5
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd/rsyncd.secrets
motd file = /etc/rsyncd/rsyncd.motd
log file = /var/log/rsync.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300


[db_backup]
path = /data/backup/
list=yes
read only = no
ignore errors
auth users = rdatabase
comment = Oracle Database Backup

密码验证文件/etc/rsyncd/rsyncd.secrets

1
2
3
4
[root@sftp_server ~]# cat /etc/rsyncd/rsyncd.secrets 
rdatabase:sss
[root@sftp_server ~]# chown root.root /etc/rsyncd/rsyncd.secrets
[root@sftp_server ~]# chmod 600 /etc/rsyncd/rsyncd.secrets

欢迎提示信息文件/etc/rsyncd/rsyncd.motd

1
2
3
4
[root@sftp_server ~]# cat /etc/rsyncd/rsyncd.motd
+++++++++++++++++++++++++++
+ Oracle Database Backup! +
+++++++++++++++++++++++++++

启动服务

1
2
[root@sftp_server ~]# systemctl start rsyncd.service
[root@sftp_server ~]# systemctl enable rsyncd.service

防火墙配置

1
2
3
firewall-cmd --zone=public --add-port=873/tcp --permanent
firewall-cmd --zone=public --add-service=rsyncd --permanent
firewall-cmd --reload

客户端配置

有几个细节地方需要主机

  1. rsync命令执行的时候,前边的是src(源),后边的是dest(目标)
  2. 路径后有/只会同步目录下的内容,路径后没有/,会把当前目录(路径的最后一层)同步过去

linux客户端配置

1
2
# yum install -y rsync
[airmodel@silu ~]$ rsync -avzP /tmp/data/ rdatabase@192.168.6.23::db_backup #把本机/tmp/data/目录下的内容同步到rsync服务器db_backup模块配置的目录中去,如果要将rsync服务器上内容同步至本机,路径位置换一下即可

windows 客户端配置

  1. 下载free版本的cwrsync软件 https://itefix.net/cwrsync
  2. 在c盘根目录新建一个密码文件password.rsync,内容为sss(这里写的密码和rsync服务器上的要对应,只写密码,不需要用户名)
  3. cwrsync不识别Windows路径,C盘需要写为/cygdrive/c,E盘需要写为/cygdrive/e
  4. 新建一个计划任务,实现自动化备份,操作可以参考以下示例
    以下实例内容为:将本地E:\database_backup\目录下的内容同步至rsync服务的db_backup模块中定义的路径中去,密码文件为C:\password.rsync
1
C:\cwRsync_5.5.0_x86_Free\bin\rsync.exe -azvP --password-file=/cygdrive/c/password.rsync /cygdrive/e/database_backup/ rdatabase@192.168.6.23::db_backup 

更优方式

linux下可以部署inotify+rsync,实现实时同步数据