备份数据需要用到rsync服务。rsync是一款开源的、快速的、多功能的、可以实现全量及增量的本地或远程数据同步备份的优秀工具。
备份服务器的作用:
- 数据备份的服务器
- 进行数据同一保存
rsync服务有三种状态:
- Local:本地备份数据。此时"rsync"命令就当于"cp"命令,可用于数据在本机上的备份,用法和"cp"命令也一样
- Access via remote shell:远程备份数据。此方式下用于手动远程备份数据文件,和"scp"命令的功能类似,用法也类似。只是"scp"命令是全量传输,就是无论传输给远程主机的数据是否和远程主机内已有的数据重复,都会传输;"rsync"命令是增量传输,就是给远程主机传输数据文件时,若远程主机内已有此数据,则不会传输,若本地文件又增加了内容,"rsync"命令只会把增加的内容传输给远程主机。
- Access via rsync daemon:守护进程方式备份数据
①可以进行一些配置管理
②可以进行安全策略管理
③可以实现自动传输备份数据
守护进程方式备份数据,需要编写配置文件"rsync.conf"
"rsync.conf"配置文件中,"锁文件"的主要功能使让备份服务器连接的远程主机的数量不能超过自己设置的最大连接数;
"ignore errors"忽略传输中简单错误,这个配置主要是防止传输文件时,因为一点小错误让系统就停止传输的问题。若是不忽略,那么传输过程出现小问题停止,修复问题再传输,这样就会影响数据的传输效率。
守护进程方式备份数据的具体形式可参看下一篇博文"备份服务器的搭建"。
rsync服务的工作原理
当客户端想把"/etc/hosts"文件备份服务器时,客户端执行"rsync"命令,此时由于备份服务器安装了"rsync"服务,并且编辑了配置文件。这时备份服务器就要看看客户端是不是配置文件中指定的认证用户,若客户端是认证用户,备份服务器再向客户端要求输入认证用户对应的密码,若密码也是正确的,那么就允许"/etc/hosts"文件备份到备份服务器中的备份目录。当要"/etc/hosts"文件进入到备份服务器后,无论在客户端内是哪个用户执行要备份"/etc/hosts"文件命令,服务器配置文件中配置的管理备份目录的用户都会接管"/etc/hosts"文件,也就是说文件的的用户发生了转换。若是"/etc/hosts"文件对“其它用户”的权限不足(因为此时"/etc/hosts"文件的用户是rsync,对于文件来说属于其它用户)就会导致自己配置的管理备份目录的用户在备份"/etc/hosts"时,报权限不足的错误。为了避免此错误的出现,就要把"rsync.conf"配置文件中"fake super"参数设置为"yes",就是让自己设置的管理备份目录的用户可以当作"root"用户一样来操作"/etc/hosts"文件,这样就可以避免权限不足的清情况
tip:备份文件时,若是想保持备份文件的属主、属组信息不变,就需要使用"-o"、"-g"两个参数,同时也要那备份服务器中"rcync.conf"配置文件中"fake super"配置注释掉,为避免权限不足问题报错,也要把"uid"、“gid"改为root。
若是没有注释"fake super"配置,即使备份文件时使用”-o"、"-g"参数也不会保持源文件的属主、属组信息
"rsync"服务允许余阻止策略详解