Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。而且能够不进行改变原有数据的属性信息,实现数据的备份迁移特性。Rsync软件适用于unix/linux/windows等多种操做系统平台。
Rsync是一个快速和很是通用的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制。它提供了大量的参数来控制其行为的各个方面,而且容许很是灵活的方式来实现文件的传输复制。它以其delta-transfer算法闻名。
rsync监听端口:873
rsync运行模式:C/Slinux
全部数据所有传送算法
把原来的文件和新的文件一块儿统一传送shell
全量复制,效率低vim
假设客户端上有 file1 file2 file3 文件,服务端上有 file1 文件,现要将客户端上的数据备份至服务端windows
彻底备份方式:bash
在传输数据以前经过一些算法经过你有的数据和我有的数据进行对比,把不同的数据经过网络传输服务器
增量复制,效率较高网络
假设客户端上有 file1 file2 file3 文件,服务端上有 file1 文件,现要将客户端上的数据备份至服务端工具
增量备份方式:测试
rsync命令 属于 1v4命令
cp命令使用: [root@nfs01 backup]# cp /etc/hosts /tmp/ [root@nfs01 backup]# ll /tmp/hosts -rw-r--r-- 1 root root 312 Jul 5 22:55 /tmp/hosts rsync命令使用: [root@nfs01 backup]# rsync /etc/hosts /tmp/host_rsync [root@nfs01 backup]# ll /tmp/host_rsync -rw-r--r-- 1 root root 312 Jul 5 22:55 /tmp/host_rsync
scp使用: [root@nfs01 backup]#scp -rp /etc/hosts 172.16.1.41:/backup root@172.16.1.41's password: hosts 100% 312 17.0KB/s 00:00 rsyn命令使用: [root@backup mnt]# rsync -avP /etc/hosts 172.16.1.31:/mnt root@172.16.1.31's password: sending incremental file list hosts 424 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1) sent 497 bytes received 31 bytes 211.20 bytes/sec total size is 424 speedup is 0.80 [root@backup mnt]#
rsync备份目录状况
rsync -rp /oldboy/ 172.16.1.41:/backup 有斜线 #在备份目录后面有 斜线 /oldboy/:只将目录下面的内容进行备份传输 rsync -rp /oldboy 172.16.1.41:/backup 无斜线 #在备份目录后面没有斜线/oldboy:会将目录自己以及下面的内容进行传输备份
rm命令使用: [root@backup mnt]# rm -f * rsync命令使用: [root@backup mnt]# rsync -avP --delete /null/ /mnt/ sending incremental file list ./ deleting 10.txt deleting 09.txt deleting 08.txt deleting 07.txt deleting 06.txt deleting 05.txt deleting 04.txt deleting 03.txt deleting 02.txt deleting 01.txt sent 29 bytes received 15 bytes 88.00 bytes/sec total size is 0 speedup is 0.00 [root@backup mnt]#
Local: rsync [OPTION...] SRC... [DEST] src:要备份的数据信息 dest:备份到什么路径中 [root@backup backup]# rsync /backup/cheak.txt /root/
rsync拉操做 拉:Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST] [USER@] 以什么用户身份拉取数据(默认以当前用户) 注意:须要对端也要有相同的用户(对端用户密码) hosts 指定远程主机IP地址或者主机名称 SRC 要拉取的数据信息 dest 保存到本地的路径信息 [root@backup mnt]# rsync -avP 172.16.1.31:/mnt /mnt
rsync推操做 推:Push: rsync [OPTION...] SRC... [USER@]HOST:DEST SRC 本地要进行远程传输备份的数据 [USER@] 以什么用户身份拉取数据(默认以当前用户) hosts 指定远程主机IP地址或者主机名称 dest 保存到远程的路径信息 [root@backup mnt]# rsync -avP /mnt 172.16.1.31:/mnt
-a #归档模式传输, 等于-tropgDl -v #详细模式输出, 打印速率, 文件数量等 -z #传输时进行压缩以提升效率 -r #递归传输目录及子目录,即目录下得全部目录都一样传输。 -t #保持文件时间信息 -o #保持文件属主信息 -p #保持文件权限 -g #保持文件属组信息 -l #保留软链接 -P #显示同步的过程及传输时的进度等信息 -D #保持设备文件信息 -L #保留软链接指向的目标文件 -e #使用的信道协议,指定替代 rsh 的 shell 程序 --exclude=PATTERN #指定排除不须要传输的文件模式 --exclude-from=file #文件名所在的目录文件 --bwlimit=100 #限速传输 --partial #断点续传 --delete #让目标目录和源目录数据保持一致
1) 下载安装软件 2) 编写配置文件 3) 搭建服务环境 4) 启动服务程序 5) 测试服务功能
#下载安装软件 rpm -qa | grep rsync #确认软件有没有安装 yum -y install rsync
#编写配置文件 [root@backup backup]# vim /etc/rsyncd.conf uid = rsync gid = rsync prot = 873 #fake super=yes use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log ingnore errors read only = false list = false hosts allow = 172.16.1.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file= /etc/rsync.password [backup] comment="backup dir by oldboy" path = /backup
建立rsync服务的虚拟用户 [root@backup backup]# useradd rsync -M -s /sbin/nologin
[root@backup backup]# echo "rsync_backup:oldboy123" >/etc/rsync.password [root@backup backup]# chmod 600 /etc/rsync.password
#建立备份目录并修改属主属组信息 [root@backup backup]# mkdir /backup [root@backup backup]# chown rsync.rsync /backup/
#启动守护进程备份服务 [root@backup backup]# systemctl start rsyncd [root@backup backup]# systemctl enable rsyncd [root@backup backup]# systemctl status rsyncd
客户端执行命令 服务端:来着何人 客户端:我是rsync——backup 服务端:说出暗号 客户端:oldboy123 客户端进来以后转换为rsync用户 写入数据
#建立一个密码文件 [root@nfs mnt]# echo "oldboy123" >/etc/rsync.password [root@nfs mnt]# chmod 600 /etc/rsync.password
#进行免交互传输数据测试 方法一: [root@nfs mnt]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 方法二: [root@nfs mnt]# export RSYNC_PASSWORD=123456 [root@nfs mnt]# rsync -avP /mnt/ rsync_backup@172.16.1.41::backup
1.rsync服务端有没有启动 2.配置文件有没有错误 3,密码文件有没有建立 4.密码文件格式是否正确 虚拟用户:密码 5.密码文件是否为600 用户是root 6.www用户是否建立了 7.数据目录是否建立而且更改成www用户
[root@backup backup]# cat /server/scripts/rsync_install.sh #!/bin/bash # install rsync yum -y install rsync # vim conf cat > /etc/rsyncd.conf<<EOF uid = www gid = www prot = 873 fake super=yes use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log ingnore errors read only = false list = false hosts allow = 172.16.1.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file= /etc/rsync.password [backup] comment="backup dir by oldboy" path = /backup EOF # useradd useradd -s /sbin/nologin -M www # mkdir backup mkdir -p /backup chown www.www /backup #passwd echo "rsync_backup:oldboy123" >/etc/rsync.password chmod 600 /etc/rsync.password # star rsync systemctl start rsyncd systemctl enable rsyncd #status rsync ps -ef | grep rsync netstat -lntup|grep 873 [root@backup backup]#