rsync
rsync 简介
rsync是 一种远程数据同步的工具,他可以在线同步数据,来进行数据的备份,与我们常用的(cp ,scp ) 命令进行数据备份有区别,rsync 可以进行增量备份,这一点,只有rsync可以做到,这也成为了,企业上常用的备份工具
rsync 的传输特性
Rsync 传输模式保存整个目录树和文件系统
可以容易的做到保持原来文件的权限,时间,软链接等等
无须特殊权限即可安装
快速:只会在第一次同步时 rsync 会复制全部的内容,下一次同步则只会传输修改过的文件,rsync 在传输数据的过程可以实现压缩及解压操作,因此可以节约带宽
Rsync大致使用三种主要的传输数据方式。分别为:本地传输(local),远程通道传输 (remote shell),守护进程传输(daemon)
rsync 默认监听在TCP的873的端口
Rysnc 命令格式
- rsync [OPTION…] SRC… [USER@]HOST::DEST rsync
- [OPTION…] SRC… rsync://[USER@]HOST[:PORT]/DEST
数据推送给服务器
rsync -avz /backup/ [email protected]::backup/ --password=/etc/rsync.password
拉取服务器的数据
rsync -avz [email protected]::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 同步
服务端的配置
- 安装rsync
[root@rsync-server ~]# yum install -y rsync
- 接下来的一步就是修改主配置文件了,在此之前,由于主配文件的里的注释等,太多了,为了方理解看的更清楚些,我们先清空主配置文件,在写入配置
[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 //启动服务
- 查看端口是否起来
[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 :::*
- 在客户端的配置
[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 //在生产上用
- 安装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
- 同步opt 目录下的所有文件
[root@ftp-server etc]# rsync -avH --port 873 --progress --delete /opt [email protected]::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 {} \;
相关阅读
Rsync 简介;Rsync 是一款开源的、快速的 多功能的 可以实现全量以及增量的本地或者是远程的数据同步备份的优秀工具并且可以不
丢失数据是站长的噩梦,为了数据安全,一个好的智能的备分软件是必须的。这次为大家奉献上的是windows下的定期备分软件,cwRsync,希望可