Rsync是Linux系统中的数据镜像备份工具,通过rsync可以将本地系统数据通过网络备份到任何远程主机上。rysnc不仅仅能对不同位置的文件和目录进行同步,还可以差异计算,压缩传输文件来最小化数据传输。
Rsync的特性
-
支持拷贝特殊文件,例如链接文件,设备等等。 -
可以做到保持原文件的权限,时间,属主属组,软链接,硬链接等所有属性均不改变(与原来一摸一样)。 -
有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。 -
可以实现增量同步,即只同步发生变化的数据,正是如此,传输效率很高(tar -N可以实现增量同步)。 -
可以使用rcp,rsh,ssh等方式配合传输文件(rsync本身不对数据进行加密)。 -
可以通过socket(进程方式)传输文件和数据(服务端和客户端) -
支持匿名的或认证(无需系统用户)的进程模式传输,可实现安全方便的进行数据备份和镜像。
常用参数选项说明
参数 | 说明 |
---|---|
-v, –verbose | 详细模式输出,传输时的进度等信息 |
-r, –recursive | 对子目录予以递归模式,即目录下的所有目录都同样传输 |
-a, –archive | 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgD |
-z, –compress | 传输时进行压缩以提高传输效率, |
-t, –times | 保持文件时间信息 |
-o, –owner | 保持文件属主信息 |
-p, –perms | 保持文件权限 |
-g, –group | 保持文件属组信息 |
-P, –progress | 显示同步的过程及传输时的进度等信息 |
-D,–devices | 保持设备文件信息 |
-l | 保持软连接 |
-e | –rsh=COMMAND指定替代rsh的shell程序 |
显示详细信息
系统版本
三种使用方式服务端主机名backup客户端主机名oldboy本地模式:我们将/etc/hosts备份到/mnt目录下这里没有加任何参数,所以属性会不一样
通过远程shell使用客户端使用rsync命令从客户端传过来的文件,对比属性与客户端一样
第三种方式单独说一下,涉及到服务端daemon的配置
1.服务器有没有rsync,没有的话安装一下rpm -qa rsync2.添加rsync服务的用户,管理本地目录linux一切文件或目录都有一个对应的用户执行adduser -s /sbin/nologin -M rsync-s 指定用户登录使用的shell,这里选nologin,即虚拟用户,不让登录命令行的。-M不创建用户家目录,linux创建用户会默认创建一个家目录。id rsync3.生成rsyncd.conf配置文件,具体作用可以man rsyncd.conf来查看这个文件默认不存在,需要自己创建我们直接vi /etc/rsyncd.conf4.根据rsyncd.conf的auth user配置账户,以及secrets file参数来生成密码文件echo ‘rsync_backup:123456’ > /etc/rsync.passwordcat /etc/rsync.password5.为密码文件配置权限,不能谁都能看到,那就没意思了。chmod 600 /etc/rsync.passwordls -l /etc/rsync.password6.创建共享目录并且授权rsync服务管理mkdir /backupchown -R rsync.rsync /backup7.启动rsync服务并检查rsync –daemonps -ef|grep ‘rsync’|grep -v ‘grep’lsof -i :873(rsync默认在873端口)8.加入开机自启动echo “/usr/bin/rsync –daemon” >> /etc/rc.localtail -l /etc/rc.local服务端到此结束
客户端只需要生成连接服务器需要的密码文件即可继续为密码文件配置权限600
使用第三种方式备份
在客户端/backup里创建100个文件touch stu{001…100}使用rsync命令备份到服务器/backup目录下rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ –password-file=/etc/rsync.passwordrsync -avz 命令加属性/backup 备份这个目录的内容,包括目录,只要目录下的内容多加个/(/backup/)rsync_backup 配置文件里的auth users@172.16.1.41指定服务器::固定格式backup/ 配置文件里的模块名后面的就是指定使用客户端里的密码文件可能出现这种问题:服务端防火墙没关,导致客户端连接不上,telnet查看出原因关掉服务器防火墙/etc/init.d/iptables stop
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !