rsync数据备份
一 基本概念1.1 rsync介绍rsync,remote synchronize,是一款实现远程同步功能的软件,在同步文件的同时,可以保持原来文件的权限,时间,软硬链接等附加信息。Rsync是使用rsync算法提供一个客户机和远程文件服务器的文件同步的快速算法,而且可以同步ssh的方式来传输 rsync特点 可以镜像保存整个目录和文件系统 可以很容易做到保持原来文件的权限,时间,软硬链接等 无须特殊权限即可安装 快速:第一次同步时,rsync会复制全部的内容,但在下一次指挥复制修改过的文件 压缩传输:rsync在传输数据的过程中可以实行压缩以及解压缩操作,因此可以使用很少的宽带 安全:可以使用奢scp,ssh等方式来传输文件,当然也可以使用docket连接 支持匿名传输,以方便进行网站镜像 选择性保持:符号链接,硬链接,文件属性,权限。时间等 1.2? rsync与scp比较scp无法大备份大量数据,类似windows的复制 rsync是变量复制,边统计,边比较 1.3 常见的备份类型完整备份,差异备份,增量备份 完成备份:每次别分都是从备份源将所有的文件或者目录备份到本地 差量备份:备份上次完全备份以后有变化的数据,他针对的是上次的完全备份,他备份过程中部清除存档 增量备份:备份上次备份以后有变化的数据,会清除存档属性 1.4 运行模式和端口采用C/S模式,点到点的传输,端口873 发起端:负责发起rsync同步操作的客户机叫做发端,通知服务器要备份数据 备份源:负责相应的客户机,rsync同步操作的服务器所在的备份源,需要备份的服务器 服务端:运行rsyncd服务,需要备份的服务器 客户端:存放备份数据 1.5 数据同步的方式推push:一台主机负责把数据传输给其他主机,服务器开销很大,比较适合后端服务器比较少的情况‘ 拉pull:所有主机找一台主机拉数据,可能导致数据缓慢 推:目的主机配置为rsync服务器,源主机周期的使用rsync命令要把同步的目录推过去 拉:源主机配置问rsync服务器,目的主机周期的使用rsync命令要把同步的目录拉过来,两种方案,都有对应的命令来实现 使用rsync来同步,首先通过xineted监听873端口,如果rsync进来的是873端口,那么xinetd就会通知他所管辖的rsync服务来回应,接下来就是rsync之间的通讯 二 安装rsync服务2.1 下载解压包[[email?protected] ~]# cd /usr/local/src/ [[email?protected] src]# wget https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz [[email?protected] src]# tar -xf rsync-3.1.3.tar.gz [[email?protected] src]# cd rsync-3.1.3 安装之前,必须安装GCC编译器 2.2 编译安装[[email?protected] rsync-3.1.3]# ./configure prefix=/usr [[email?protected] rsync-3.1.3]# make [[email?protected] rsync-3.1.3]# make install 2.3 修改配置文件Rsync的配置文件主要有三个,rsyncd.conf主配置文件、rsyncd.secret密码文件、rsyncd.motd服务信息 [[email?protected] ~]# cat /etc/rsyncd.conf # /etc/rsyncd: configuration file for rsync daemon mode # See rsyncd.conf man page for more options. # configuration example: uid = rsync gid = rsync use chroot = no read only = false #limit access to private LANs hosts allow = 172.19.18.0/255.255.255.0 hosts deny = * max connections = 5 pid file = /var/run/rsyncd.pid secrets file = /etc/rsyncd.secrets motd file = /etc/rsyncd.motd log file = /var/log/rsync.log transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 300 auth users = rsync_backup [wiki_test] path = /backup/wiki_test list=yes ignore errors auth users = rsync_backup hosts allow = 172.19.18.39/32 hosts deny = * ? ?? [[email?protected] ~]# useradd rsync -s /sbin/nologin? -M [[email?protected] rsync-3.1.3]# mkdir ?/backup/wiki_test [[email?protected] ~]# chown -R rsync /backup/ [[email?protected] ~]# ll -d /backup/ [[email?protected] rsync-3.1.3]# vim rsyncd.secrets rsync_backup:RWDshWFN8aUd7yGP [[email?protected] ~]# cat /etc/rsyncd.motd [[email?protected] rsync-3.1.3]# chmod 400 rsyncd.secrets??????? 设定rsyncd.motd文件 他是定义服务器信息的,也就是用户登录信息, [[email?protected] rsync-3.1.3]# systemctl restart rsyncd [[email?protected] ~]# netstat -ntlp|grep 873 服务端配置完成 三 配置客户端客户端centos6.6:172.19.18.39 3.1 安装服务[[email?protected] ~]# cd /usr/local/src/ [[email?protected] src]# wget https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz [[email?protected] src]# tar -xf rsync-3.1.3.tar.gz [[email?protected] src]# cd rsync-3.1.3 [[email?protected] rsync-3.1.3]# ./configure --prefix=/usr [[email?protected] rsync-3.1.3]# make [[email?protected] rsync-3.1.3]# make install [[email?protected] rsync-3.1.3]# mkdir /etc/rsyncd [[email?protected] rsync-3.1.3]#? touch /etc/rsyncd/rsyncd.conf [[email?protected] rsync-3.1.3]# touch /etc/rsyncd/rsyncd.secrets [[email?protected] rsync-3.1.3]# chmod 0600 /etc/rsyncd/rsyncd.secrets [[email?protected] rsync-3.1.3]# cat /etc/rsyncd/rsyncd.secrets RWDshWFN8aUd7yGP 3.2 启动服务,并作相关配置[[email?protected] rsync-3.1.3]# /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf [[email?protected] home]# mkdir /home/tmp [[email?protected] home]# cd /home/tmp [[email?protected] tmp]# touch test1.txt [[email?protected] tmp]# touch test.txt 3.3 验证[[email?protected] tmp]# rsync -avz --delete --password-file=/etc/rsyncd/rsyncd.secrets? /home/tmp/? [email?protected]::wiki_test 四 另添加一个新的模块和新的客户端测试4.1 配置服务端,添加模块[[email?protected] ~]# cat /etc/rsyncd.conf # /etc/rsyncd: configuration file for rsync daemon mode # See rsyncd.conf man page for more options. # configuration example: uid = rsync gid = rsync use chroot = no read only = false #limit access to private LANs hosts allow = 172.19.18.0/255.255.255.0 hosts deny = * max connections = 5 pid file = /var/run/rsyncd.pid secrets file = /etc/rsyncd.secrets motd file = /etc/rsyncd.motd log file = /var/log/rsync.log transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 300 auth users = rsync_backup [wiki_test] path = /backup/wiki_test list=yes ignore errors auth users = rsync_backup hosts allow = 172.19.18.39/32 hosts deny = * [test] path = /backup/test list=yes ignore errors auth users = rsync_backup hosts allow = 172.19.18.202/32 hosts deny = * [[email?protected] ~]# mkdir /backup/test [[email?protected] ~]# chown -R rsync /backup/ [[email?protected] ~]# systemctl restart rsyncd 4.2配置另一个客户端客户端使用centos7.2.安装rsync使用和7相同的安装方法 [[email?protected] ~]# ip addr [[email?protected] ~]# ll /data/ 4.3 验证[[email?protected] ~]# rsync -avzx? --password-file=/etc/rsyncd.secret? /data/? [email?protected]::test? [[email?protected] ~]# touch /backup/test/test2.txt [[email?protected] ~]# rsync -avzx? --password-file=/etc/rsyncd.secret??? [email?protected]::test?? /data/ [[email?protected] ~]# ll /data 4.4 关于delete的参数在客户端向服务端同步数据,使用delete参数,就会对比两个目录,如果存在差异文件,如果是推,就会删除服务端存在而客户端不存在的文件,同时发送自己存在而服务端没有的文件,如果是拉,就会删除自己存在而服务端不存在的文件,同时拉取服务端存在而自己不存在的文件 [[email?protected] ~]# touch /data/test4.txt [[email?protected] ~]# ll /data [[email?protected] ~]# rsync -avzx? --delete? --password-file=/etc/rsyncd.secret??? [email?protected]::test?? /data/ [[email?protected] ~]# ll /data [[email?protected] ~]# touch /backup/test/test3.txt [[email?protected] ~]# ls /backup/test/ [[email?protected] ~]# rsync -avzx? --delete? --password-file=/etc/rsyncd.secret? /data/?? [email?protected]::test? [[email?protected] ~]# ll /backup/test/ 验证完成! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Linux Shell Web超级终端工具shellinabox
- Linux——CentOS7没有第二张网卡的配置信息
- linux – 我应该开始分发我的系统作为Wine准备好了吗?
- nid在j??ava线程转储中意味着什么?
- 如何在Linux中从.NET Core 2.0创建可执行控制台应用程序?
- linux – Ubuntu在网络A上配置eth4时,忽略eth0上网络A的数据
- linux – 服务tomcat8无法使用服务tomcat8 start启动
- linux – 恢复已经在降级模式下运行的RAID-5(丢失了第二个磁
- linux – 隐藏aplay shell命令的输出
- linux – 如何在所有文件和所有目录中递归地找到一个单词