rsync备份服务器

rsync简介

  • 1.1 rsync功能

可以实现增量备份,能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。类似于scp cp rm等工具。

  • 1.2 rsync的特点

支持拷贝特殊文件如软连接,设备等
可以有排除(tar?find?)指定文件或目录同步的功能,相当于打包命令tar的排除功能。
可以做到保持源文件或目录的权限、时间、软硬连接、属主、组等所有属性均不改变-p。
可以实现增量同步,既只同步发生变化的数据,因此数据传输效率很高
可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密)
可以通过socker(守护进程方式)传输文件和数据(服务端和客户端)
支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像 。
Rsync也相当于ls命令

  • 1.3 rsync的三种工作模式说明

    ···
    image.png

1).本地文件系统上实现同步。命令行语法格式为上述"Local"段的格式。
(2).本地主机使用远程shell和远程主机通信。命令行语法格式为上述"Access via remote shell"段的格式。
(3).本地主机通过网络套接字连接远程主机上的rsync daemon。命令行语法格式为上述"Access via rsync daemon"段的格式。

前两者的本质是通过管道通信,即使是远程shell。而方式(3)则是让远程主机上运行rsync服务,使其监听在一个端口上,等待客户端的连接。
但是,通过远程shell也能临时启动一个rsync daemon,这不同于方式(3),它不要求远程主机上事先启动rsync服务,而是临时派生出rsync daemon,它是单用途的一次性daemon,仅用于临时读取daemon的配置文件,当此次rsync同步完成,远程shell启动的rsync daemon进程也会自动消逝。此通信方式的命令行语法格式同"Access via rsync daemon",但要求options部分必须明确指定"--rsh"选项或其短选项"-e"。

2 准备配置环境

  • 2.1 准备环境

准备两台服务器分别为:
backup 外网ip:10.0.0.41 内网ip:172.16.1.41
nfs01 外网ip: 10.0.0.31 内网ip:172.16.1.31
分别在两台机器做好/etc/hsots解析:
vim /etc/hosts
172.16.1.31 nfs01
172.16.1.41 backup

  • 2.2更改配置文件/etc/rsycnd.conf(清空原有的)


    image.png
  • 2.3 配置服务端(backup端10.0.0.41)

    (1)创建虚拟用户为了安全
    useradd -s /sbin/nologin -M rsync
    cat /etc/passwd|grep rsync
    rsync:x:1001:1001::/home/rsync:/sbin/nologin
    (2)创建一个目录跟模块中的设置成一样的
    mkdir -p /data
    (3)授权让rsync用户管理这个/data
    chow -R rsync.rsync /data
    [root@backup ~]# ll -d /data
    drwxr-xr-x 4 rsync rsync 43 May 22 11:36 /data
    (4)给这个用户设置个密码文件(主要是为了安全)
    echo 'rsync_backup:123456' > /etc/rsync.password
    chmod 600 /etc/rsyncd.conf
    这里的的密码文件要设置为用户家密码
    (5)启动rsync服务并且加入开自己启动(centos7)
    systemctl start rsyncd
    systemctl enable rsyncd
    netstat -luntp|grep 873

  • 2.4 配置客户端(nfs端10.0.0.31)

echo '123456' > /etc/rsync.password
chomd 600 /etc/rsync.passwd
这里不需要配置别的只是需要配置一个密码文件设置一个权限就行配置密码要跟服务端的密码一样设置权限安全
这样就配置玩了然后执行rsnyc检验一下就OK
rsync -avz /backup/ [email protected]::data --password-file=/etc/rsync.password
切换到服务端查看/data/目录下面有没有backup,有表示OK。

3 rsync 参数

rsync 参数 源 目标
-- delete 进行无差异同步
-v, --verbose --- 显示传输数据过程信息
-z, --compress --- 将传输数据进行压缩
-a, --archive --- 归档参数 -rtopgDl (不包括参数 -L)
-r, --recursive --- 递归传输数据
-t, --times --- 保持文件修改时间不变
-o, --owner --- 保持文件属主信息不变(在配置文件中uid设置为root用户)
-g, --group --- 保持文件属组信息不变(在配置文件中gid设置为root用户)
-p, --perms --- 保持文件权限不变
-D --- 保持设置文件信息不变
-l, --links --- 只传输链接文件,不会传输源文件中的内容 (bug)
-L, --- 只传输链接文件,会传输源文件中的内容
-P, --progress --- 显示数据传输的进度信息(查看传输进度)
-- exclude ---排除某个东西不传输
-- --bwlimit ----限制速度传输

4 scp用法以及参数

scp [参数] 源文件 目标文件
scp -rp /etc/ 192.168.1.201:/tmp
这里加参数-rp是因为scp自己本身不支持推送目录需要参数

5 rsync报错

(1)bash: rsync: command not found
远程服务器中没有这个命令
检查远程服务器是否安装了rsync 没有yum安装即可
(2)ssh: connect to host 176.16.1.31 port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.2]
远程连接拒接 Connection refused
检查是否能ping通对应服务器
查看/etc/hosts解析
(3)Password:
@ERROR: auth failed on module data
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]
密码写错
密码文件 不存在
密码文件 权限不对

6全网备份项目

···
image.png

···

···
image.png

··
在把想对应的脚本加入到定时任务就行

你可能感兴趣的:(rsync备份服务器)