rsync应该如何应用

23 篇文章 0 订阅
13 篇文章 0 订阅
正如业界专家所分析和预测的趋势一样,Linux正在和微软与Unix争夺服务器市场份额,尽管Unix系统一直在做服务器方面有绝对的优势。 如今,已成三足鼎立之势,Linux逐渐发展成为第三大服务器操作系统,也成为微软在低端服务器市场的主要竞争者。其中的原因之一就是Linux的安全性能,另外一个就是费用问题了。如果需要执行自动备份操作或部署安全策略,无论是为一个单一的工作站还是为一个网络内的所 有服务器和工作站,rsync工具绝对是一个很好的选择。它能够及时报告所有意外事件的发生,尤其是把它和其他合适的工具配合使用的时候, 可以极大地提高安全防护性能。

rsync被设计成一个简单的文件拷贝工具,但不同于其他拷贝工具,如cp和rcp,在功能上比他们更胜一筹。因为rsync具备校验比较功能,可以 决定哪个文件需要被拷贝,哪个文件已经存在目标机上而不需拷贝。例如,如果需要将位于foo计算机上一个包含30个文件的目录拷贝到bar机 上时,如果选用cp,则拷贝的仅仅只是文件,并且覆盖bar机器上具有相同文件名的文件,可能某些文件已经从foo拷贝到bar上了。但是,如果 选用的是rsync,它将快速的比较foo和bar上相同的目录,查看两者之间的差别所在,最后将那些foo上存在而bar上不存在的文件拷贝到bar上 ,不用拷贝重复文件。这将极大地节省在文件拷贝上所花费的总时间,尤其是需要将某台机器上的数据备份到另外一台机器上的时候。rsync工 具使用起来非常简单、方便,若使用得当的话还可以增强操作的安全性。此外,它还可以被用作一款安全检测工具,不需要任何其他软件的支 持,就可以完成文件系统的完整性审计。

文件拷贝功能
数据安全性的实施一般需要备份关键数据。可以通过效仿小生意的经营方法来解决 ,比如:到办公室的每一台工作站上,将一些重要的文件刻 录到一张光盘上,这比在网络上运行一些自动备份软件要快一些。最有效的方式当然是使用目前推出的低成本并带有高速硬盘的备份服务器, 通过网络定期的将需要备份的文件复制到备份服务器的硬盘上。对于那些办公任务比较大的单位来说,可以调用出一台老式的计算机来扮演这 个备份服务器的角色,它的工作极为简单,在需要在没有人使用网络的时间段,如半夜或周末,拷贝重要的数据文件,完成备份。rsync在计算 机之间通过网络拷贝文件是一个非常简单的过程。如果需要拷贝的文件在一个Linux系统上,则还有一个极为简单的方法,只需要在目标Linux 系统上键入如下命令即可:
rsync localdir host:remotedir

上述命令行是使用rsync默认的操作,在本地系统上(localdir) 指定希望被拷贝的目录,同时指定远程系统的主机名(host)和用来存放被拷贝 文件的目录(remotedir) 。例如,如果想将位于foo系统上/home/baz目录拷贝到主机bar的/home/backup/qux目录中,在主机foo上,则需要键 入的命令为:

rsync /home/baz bar:/home/backup/qux

数据备份完成后该操作会自行终止。但如果仅有上述操作的话,在安全性方面还是没有保障。同时,上述操作也不能拷贝链接文件,不能保存 权限、用户与群之间的的所有关系,以及新建的时间。对于此,最好是在上述命令的基础上再添加一个“-a”选项(对于文件)和“-e”选 项,指定使用远程的shell程序,以保障安全。

:-a,--archive is equivalent to -rlptgoD, -r: recursive, -l: recreate symbol links, -p: save permisions, -t: --times, -g: set group same as source file, -o: set owner, -D: copy device files

-e, --rsh=COMMAND: This option allows you to choose an alternative remote shell program to  use;

此时,远端的shell将使用一个加密协议,比如ssh,以便远程的shell可以使用-e ssh格式。这 样,上述rsync命令就有了ssh加密协议的保护,具体形式如下:
rsync -a -e ssh localdir host:remotedir

如果想了解整个文件拷贝过程中所发生的一切,可以使用-v和-progress选项。-v选项表示打印出详细的操作过程。rsync默认的操作是单纯地 拷贝文件,不打印任何东西,尽量不打扰用户,只是简单而快速地完成任务。若只使用一次,-v选项将会报告所有被拷贝的文件,并在最后给 出总量。若使用两次-v选项,即在命令中使用-vv的话,rsync将不仅报告所有被拷贝的文件,还会报告那些勿需拷贝的文件,并在最后给出更 详细的信息。-progress选项的任务则主要是显示当前的拷贝进度,包括当前文件的大小,已完成的百分比,当前的传输速度,剩余时间估计, 等。如果要写一条使用复选项模式和ssh隧道协议的命令,同时还要求有进度指示器的话,则可采用如下形式:
rsync -avv -e ssh -progress localdir host:remotedir

如果在拷贝文件的过程中,传输被中断,rsync的默认操作是撤消前操作,即从目标机上删除已拷贝的部分文件。如果想在下次拷贝时续传文件 ,不需要重新拷贝所有文件的话,可以使用-partial选项阻止rsync在传输中断时删除已拷贝的部分。如果希望同时使用-partial和-progress 选项的功能,则可以使用-P选项,这是rsync提供的一个更便捷的选项,可以代替上述两者。因此,如果想使用复选项模式的文件拷贝,并关闭 删除选项,同时要求有进度指示器和ssh隧道协议的保护,则可以采用如下命令:
rsync -avvP -e ssh localdir host:remotedir

如果希望系统按照预定的调度计划自行处理,可以简单地在后台守护进程任务中添加rsync命令。如:要添加rsync命令到/etc/crontab文件中 ,方法如下所示:
30 4 * * * user rsync -aP -e ssh localdir host:remotedir

后台作业任务中的前五项用于定义某个任务何时被调度,第六项告诉后台守护进程哪一个用户将运行该任务。可以把以下例子中的“user”字 符串替换为将运行该任务的实际的用户帐号。例中的后台守护程序被设置为每天早上4:30运行一次。前五个字段的含义依次为分,小时,月份 中的某一天,年份中的某月和一周中的星期几。时间以0开头,所以分为0-59,小时为 0-23。接下来的两个字段,月份中的某一天和年份中的 某月,为1-31和1-12。最后一个字段,星期中的某一天,为0-7,不管是0还是7都代表星期天。实际的后台守护进程配置文件都比这复杂,但这 些是用rsync进行数据备份时创建后台程序的基本操作。如果还想了解更多的创建后台守护程序的相关信息,可以通过启动命令man cron,man crontab和man 5 crontab来获取。如果想集中管理数据备份后台守护进程,可以在备份服务器上创建如下的后台守护项:
30 4 * * * user rsync -aP -e ssh host:remotedir localdir

按照如上所述的方式设置后,rsync将从某个特定的远程主机上的目录(remotedir)中收集文件信息,并复制这些文件到你所指定的本地 (localdir)目录中。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值