rsync备份服务

  1. rsync守护进程语法
    Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST] 下载
    Push: rsync [OPTION...] SRC... [USER@]HOST::DEST 上传
    注意事项:
    源路径如果是一个目录的话,带上尾随斜线和不带尾随斜线是不一样的,不带尾随斜线表示的是整个目录包括目录本身,带上尾随斜线表示的是目录中的文件,不包括目录本身
rsync -avz /etc rsync_backup@172.16.1.31::backup  表示将etc整个目录推到backup下
rsync -avz /etc/ rsync_backup@172.16.1.31::backup  表示将etc下的内容推到backup下

选项组合:-avz 即压缩和显示部分信息,并以归档模式传输

  1. rsync服务安装配置开启服务并测试
服务端配置
1、下载rsync
[root@backup01 ~]# yum install -y rsync

2、查看rsync的配置文件位置
[root@backup01 ~]# rpm -qc rsync
/etc/rsyncd.conf
/etc/sysconfig/rsyncd

3、修改rsync配置文件
[root@backup01 ~]# vim /etc/rsyncd.conf 
uid = rsync            --运行进程的用户
gid = rsync            --运行进程的用户组
port = 873             --服务的端口号
fake super = yes          --将rsync虚拟用户伪装成为一个超级管理员用户
use chroot = no           --关闭假根功能
max connections = 200     --最大的连接数
timeout = 600          --超时时间
ignore errors          --忽略错误
read only = false    --可读可写
list = false         --不允许查看模块信息
auth users = rsync_backup     --定义虚拟用户,用于连接认证
secrets file = /etc/rsync.password        --认证用户的密码文件路径
log file = /var/log/rsyncd.log    --rsync日志文件路径

[backup]             --模块
comment = commit         --注释
path = /backup          --备份目录

4.创建rsync用户和用户组
[root@backup01 /]# useradd -M -s /sbin/nologin rsync
[root@backup01 /]# id rsync
uid=1002(rsync) gid=1113(rsync) groups=1113(rsync)

5.创建备份目录
[root@backup01 /]# mkdir /backup
[root@backup01 /]# chown -R rsync.rsync /backup

6.创建认证用户密码文件
[root@backup01 /]# echo 'rsync_backup:1' > /etc/rsync.password
[root@backup01 /]# chmod 600 /etc/rsync.password 

7.启动rsync服务
[root@backup01 /]# chmod 600 /etc/rsync.password 
[root@backup01 /]# systemctl enable rsyncd

8.查看服务端口是否启动
[root@backup01 /]# netstat -tunlp | grep 'rsync'
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      2207/rsync          
tcp6       0      0 :::873                  :::*                    LISTEN      2207/rsync


客户端配置
1.安装rsync服务
[root@backup01 ~]# yum install -y rsync

2.传输测试
[root@nfs01 ~]# rsync -avz /var/log rsync_backup@172.16.1.31::backup
需要服务端认证密码文件中的用户密码

3.服务端校验
[root@backup01 /backup]# ll /backup
total 16
drwxr-xr-x  5 rsync rsync 4096 Nov 10 12:11 log

4.免交互传输文件(不输入密码)
(设置密码文件)
[root@nfs01 ~]# echo '1' > /etc/rsync.password
[root@nfs01 ~]# chmod 600 /etc/rsync.password 
[root@nfs01 ~]# rsync -avz /var/log rsync_backup@172.16.1.31::backup --password-file=/etc/rsync.password 

(设置密码变量)
[root@nfs01 ~]# export RSYNC_PASSWORD=1
[root@nfs01 ~]# rsync -avz rsync_backup@172.16.1.31::backup /opt
  1. 备份同步(--delete)
    慎用,可能会把备份的文件删除
  2. 限速传输(--bwlimit=100)
  3. 排除文件
    --exclude=path(文件路径名)
    --exclude-file=file (file中是文件路径名)
  4. 备份脚本的简单编写
#!/usr/bin/bash

#1.定义变量
Host=$(hostname)
Ipaddr=$(ifconfig ens34 | awk 'NR==2 {print $2}')
Date=$(date +%F)
Path=/backup
Dest=${Host}_${Ipaddr}_${Date}

#2.创建备份目录
mkdir -p /$Path/$Dest 

#3.本地备份文件
tar -czf /$Path/$Dest/conf_bak.tar.gz /etc/fstab /etc/rsyncd.conf &> /dev/null

#4.对压缩文件进行md5校验
md5sum /$Path/$Dest/* > /$Path/$Dest/flag_${Date}

#4.推送给backup服务器
export RSYNC_PASSWORD=1
rsync -az /$Path/$Dest rsync_backup@172.16.1.31::backup
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容