rsync备份

Posted gspblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync备份相关的知识,希望对你有一定的参考价值。

一.服务端设置

安装rsync服务

[root@backup ~]# yum install -y rsync

修改配置文件

[root@backup ~]# vim /etc/rsyncd.conf
## 指定进程启动uid
uid = rsync
## 指定进程启动gid
gid = rsync
## rsync服务的端口
port = 873
## 无需让rsync以root身份运行,允许接收文件的完整属性
fake super = yes
## 禁锢指定的目录
use chroot = no
## 最大连接数
max connections = 200
## 超时时间
timeout = 600
## 忽略错误
ignore errors
## 不只读(可读可写)
read only = false
## 不允许别人查看模块名
list = false
## 传输文件的用户
auth users = gsp_bak
## 传输文件的用户和密码文件
secrets file = /etc/rsync.passwd
## 日志文件
log file = /var/log/rsyncd.log
#####################################
## 模块名
[gsp]
## 注释,没啥用
comment = my backup
## 备份的目录
path = /backup

创建所需用户,目录,文件

# 根据配置文件内容,创建出来需要的用户,目录,密码文件...
#1.创建用户
[root@backup ~]# useradd rsync -s /sbin/nologin -M

#2.创建备份目录
[root@backup ~]# mkdir /backup

#3.修改属组和属主
[root@backup ~]# chown -R rsync.rsync /backup/

#4.创建用户名和密码存放的文件
[root@backup ~]# vim /etc/rsync.passwd
gsp_bak:123
或者
[root@backup ~]# echo ‘gsp_bak:123‘ > /etc/rsync.passwd

#5.修改密码文件的权限为600
[root@backup ~]# chmod 600 /etc/rsync.passwd

#6.启动服务并且加入开机自启
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd

#7.检测端口
[root@backup ~]# netstat -lntup|grep 873
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      18373/rsync         
tcp6       0      0 :::873                  :::*                    LISTEN      18373/rsync 

二.客户端设置

创建客户端密码文件

[root@web01 ~]# echo ‘123‘ > /etc/rsync.pass

修改文件权限

[root@web01 ~]# chmod 600 /etc/rsync.pass 

推送

#从客户端往服务端推送重要备份文件
rsync [-avz] 源文件 gsp_bak@10.0.0.41::[模块] + 密码文件路径
rsync -avz /etc/shadow gsp_bak@10.0.0.41::gsp --password-file=/etc/rsync.pass

rsync的简单语法

## rsync 重要选项
-a           #归档模式传输, 等于-tropgDl
-v           #详细模式输出, 打印速率, 文件数量等
-z           #传输时进行压缩以提高效率
--delete     #让目标目录和源目录数据保持一致
--password-file=xxx #使用密码文件

------------------- -a 包含 ------------------
-r           #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t           #保持文件时间信息
-o           #保持文件属主信息
-p           #保持文件权限
-g           #保持文件属组信息
-l           #保留软连接
-D           #保持设备文件信息
----------------------------------------------

-L           #保留软连接指向的目标文件
-e           #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN   #指定排除不需要传输的文件模式
--exclude-from=file #文件名所在的目录文件

rsync密码环境变量

#使用rsync服务时,推 拉客户端都要配置密码
#使用环境变量,可以不配置,直接写密码(常在脚本中)

[root@web01 ~]# export RSYNC_PASSWORD=123            直接写密码
[root@web01 ~]# rsync -avz /root/back.sh  gsp_bak@10.0.0.41::gsp     把back.sh 使用gsp模块推给服务端

三.简单的定时备份脚本

备份脚本

#写打包etc目录且命名发送的脚本
[root@web01 ~]# vim back.sh
#!/bin/bash

#密码环境变量
export RSYNC_PASSWORD=123

#打包
cd / &&tar -zcf /tmp/back/$(date +%F)-$(hostname).etc.tar.gz  etc

#rsync 推送
/usr/bin/rsync -avz /tmp/back/$(date +%F)-$(hostname).etc.tar.gz  gsp_bak@10.0.0.41::gsp


#授权脚本
[root@web01 ~]# chmod 755 back.sh

写定时任务

[root@web01 ~]# crontab -e
#每天凌晨1点备份/etc目录到服务端
00 1 * * * /usr/bin/sh /root/back.sh

以上是关于rsync备份的主要内容,如果未能解决你的问题,请参考以下文章

rsync+inotify实现代码实时同步

rsync+inotify实现实时备份

rsync实现数据同步

Linux下的rsync远程增量备份详解

Rsync备份服务

Rsync