- 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 即压缩和显示部分信息,并以归档模式传输
- 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
- 备份同步(--delete)
慎用,可能会把备份的文件删除 - 限速传输(--bwlimit=100)
- 排除文件
--exclude=path(文件路径名)
--exclude-file=file (file中是文件路径名) - 备份脚本的简单编写
#!/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