rsync

rsync 简介


rsync是 一种远程数据同步的工具,他可以在线同步数据,来进行数据的备份,与我们常用的(cp ,scp ) 命令进行数据备份有区别,rsync 可以进行增量备份,这一点,只有rsync可以做到,这也成为了,企业上常用的备份工具

rsync 的传输特性

可以镜像保存整个目录数和文件系统
Rsync 传输模式保存整个目录树和文件系统
可以容易的做到保持原来文件的权限,时间,软链接等等
无须特殊权限即可安装
快速:只会在第一次同步时 rsync 会复制全部的内容,下一次同步则只会传输修改过的文件,rsync 在传输数据的过程可以实现压缩及解压操作,因此可以节约带宽

Rsync大致使用三种主要的传输数据方式。分别为:本地传输(local),远程通道传输 (remote shell),守护进程传输(daemon)

rsync 默认监听在TCP的873的端口

Rysnc 命令格式

  1. rsync [OPTION…] SRC… [USER@]HOST::DEST rsync
  2. [OPTION…] SRC… rsync://[USER@]HOST[:PORT]/DEST

数据推送给服务器

rsync -avz /backup/ rsync_backup@192.168.69.116::backup/  --password=/etc/rsync.password

拉取服务器的数据

rsync -avz  rsync_backup@192.168.69.116::backup  /backup/  --password=/etc/rsync.password

如下图,可以通过推送或者拉取服务器的数据来进行备份
跨机房备份项目

Rsync 常用的选项

参数选项选项说明
-a归档模式传输,等于 -tropgDl
-v详细模式输出,打印速率文件数量等
-z传输时进行压缩以提高效率
-r递归传输目录及子目录,即目录下得所有目录都相同传输
-t保持文件时间信息
-0保持文件属主信息
-p保持文件权限
-g保持文件属主信息
-l保持软连接
-P显示同步的过程及传输时的进度等信息
-D保持设备文件信息
-L保留软连接指向的目标文件
-e使用的信道协议,指定替代rsh的shell
–exclude=PATTERN指定排除不需要传输的文件模式
–exclude-from=file文件名所在的目录文件
–bwlimit=100限速传输
–partial断电续传
–delete让目标目录个源目录数据保持一致
rsync 同步

服务端的配置

  1. 安装rsync
[root@rsync-server ~]# yum install -y rsync
  1. 接下来的一步就是修改主配置文件了,在此之前,由于主配文件的里的注释等,太多了,为了方理解看的更清楚些,我们先清空主配置文件,在写入配置
[root@rsync-server ~]# > /etc/rsyncd.conf
[root@rsync-server ~]# vim /etc/rsyncd.conf 
uid = rsync
gid = rsync
port = 873
use chroot = no
max connections = 2000
timeout = 600
pidfile = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
address = 192.168.169.10
hosts allow = 192.168.169.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /backup

创建rsync 这个用户

[root@rsync-server ~]# useradd -M -s /sbin/nologin rsync

3. 创建用户认证

[root@rsync-server ~]# echo 'chen:123'> /etc/rsync.password
[root@rsync-server ~]# chmod 600 /etc/rsync.password 

4. 准备对应的环境

[root@rsync-server ~]# mkdir /backup/     //主配置文件中 path 这个位置一定要存在
[root@rsync-server ~]# systemctl stop firewalld
[root@rsync-server ~]# systemctl disable firewalld
[root@rsync-server ~]# setenforce 0
[root@rsync-server ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux 
[root@rsync-server ~]# systemctl start  rsyncd    //启动服务
  1. 查看端口是否起来
[root@rsync-server ~]# ss -anlt
State      Recv-Q Send-Q                 Local Address:Port                                Peer Address:Port              
LISTEN     0      128                                *:22                                             *:*                  
LISTEN     0      100                        127.0.0.1:25                                             *:*                  
LISTEN     0      5                     192.168.169.10:873                                            *:*                  
LISTEN     0      128                               :::22                                            :::*                  
LISTEN     0      100                              ::1:25                                            :::* 
  1. 在客户端的配置
[root@ftp-server ~]#systemctl stop firewalld
[root@ftp-server ~]#systemctl disable  firewalld
[root@ftp-server ~]# setenforce 0

安装yum 源

[root@ftp-server ~]# cd /etc/yum.repos.d/
[root@ftp-server yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@ftp-server ~]# sed -i 's#$releasever#7#g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@ftp-server ~]# sed -i 's#enabled=0#enabled=1#g' /etc/yum.repos.d/CentOS7-Base-163.repo 
[root@ftp-server ~]# yum install -y epel-release
[root@ftp-server ~]# yum -y update --skip-broken    //在生产上用
  1. 安装rsync服务端软件,只需要安装不需要启动,不需要配置
[root@ftp-server ~]# yum install -y rsync

创建认证密码文件,修改文件权限为600

[root@ftp-server ~]# echo '123' > /etc/rsync.password
[root@ftp-server ~]# chmod 600 /etc/rsync.password 
  1. 同步opt 目录下的所有文件
[root@ftp-server etc]# rsync -avH --port 873 --progress --delete /opt chen@192.168.169.10::backup  --password-file=/etc/rsync.password

实验验证
在rsync-server 上查看是否同步

[root@rsync-server backup]# ls
opt

同步成功

rsync 服务端排错思路

1.关闭防火墙以及selinux
2.确认配置文件/etc/rsyncd.conf
3.配置允许网段以及对应的模块
4.创建对应的备份目录,并设定rsync用户权限
5.启动rsync服务以后台运行,检查进程和端口tcp/873
6.建立虚拟账号的密码,权限600

rsync客户端

1.网络是否能通,telnet端口是否正常
2.配置文件密码是否正确,权限设定为600
注意:只需要密码,并且和服务端的密码一致
3.推送和拉取数据时,模块前加双冒号

以下脚本用于客户端备份,存放在定时任务

#!/bin/bash
##Makedir
Client_Dir=/backup
Client_Hostname=$(hostname)
Client_date=$(date +%F)
Client_IP=$(ifconfig eth0|awk 'NR==2'|awk '{print $2}')
Client_Dest_Dir="$Client_Dir"/"$Client_Hostname"_"$Client_IP"_"$Client_date"

mkdir -p  "$Client__Dest_Dir"
##setup2 cope configure
cp -rp /soft/scripts /var/spool/cron \
/etc/hosts  /etc/fstab  /etc/rc.local  "$Client_Dest_Dir"

##setup3 rsync push data
Server_User=rsync_backup
Server_IP=192.168.169.50
Server_Mode=backup/
Server_Pass=/etc/rsync.password
/usr/bin/rsync -avz $Client_Dir/ $Server_User@$Server_IP::$Server_Mode  --password-file=$Server_Pass

##setup4 find time out 30
/usr/bin/find $Client_Dir -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值