Linux系统中使用数据备份同步工具Rsync的实例讲解
来源:才华咖 本文已影响1.81W人
来源:才华咖 本文已影响1.81W人
对于运维人员来说,数据备份是最重要的工作之一,rsync就是一款通过网络备份重要数据的工具/软件。
Rsync同样是一个在类Unix和Window系统上通过网络在系统间同步文件夹和文件的网络协议,它可以复制或者显示目录并复制文件。rsync默认监听TCP 873端口,通过远程shell如rsh和ssh复制文件。同时要求必须在远程和本地系统上都安装sync。
Linux上如果没有安装,装起来也很简单:
# sudo apt-get install rsync #在debian、ubuntu 等在线安装方法;
# yum install rsync #Fedora、Redhat 等在线安装方法;
# rpm -ivh rsync #Fedora、Redhat 等rpm包安装方法;
rsync的主要优点是:
速度:最初会在本地和远程之间拷贝所有内容。下次,只会传输发生改变的块或者字节。
安全:传输可以通过ssh协议加密数据。
低带宽:rsync可以在两端压缩和解压数据块。
sync命令语法:
#rsysnc [options] source path destination path
以下将根据sync的参数和应用场景来给大家介绍具体的用法:
示例: 1 - 启用压缩
[root@localhost /]# rsync -zvr /home/aloft/ /backuphomedir
building file list ... done
_logout
_profile
rc
sent 472 bytes received 86 bytes 1116.00 bytes/sec
total size is 324 speedup is 0.58
上面的rsync命令使用了-z来启用压缩,-v是可视化,-r是递归。上面在本地的`/home/aloft/和/backuphomedir之间同步。
示例: 2 - 保留文件和文件夹的属性
[root@localhost /]# rsync -azvr /home/aloft/ /backuphomedir
building file list ... done
./
_logout
_profile
rc
sent 514 bytes received 92 bytes 1212.00 bytes/sec
total size is 324 speedup is 0.53
上面我们使用了-a选项,它保留了所有人和所属组、时间戳、软链接、权限,并以递归模式运行。
示例: 3 - 同步本地到远程主机
root@localhost /]# rsync -avz /home/aloft/ :/share/rsysnctest/
Password:
building file list ... done
./
_logout
_profile
rc
sent 514 bytes received 92 bytes 1212.00 bytes/sec
total size is 324 speedup is 0.53
上面的命令允许你在本地和远程机器之间同步。你可以看到,在同步文件到另一个系统时提示你输入密码。在做远程同步时,你需要指定远程系统的用户名和IP或者主机名。
示例: 4 - 远程同步到本地
[root@localhost /]# rsync -avz :/share/rsysnctest/ /home/aloft/
Password:
building file list ... done
./
_logout
_profile
rc
sent 514 bytes received 92 bytes 1212.00 bytes/sec
total size is 324 speedup is 0.53
上面的命令同步远程文件到本地。
示例: 5 - 找出文件间的不同
[root@localhost backuphomedir]# rsync -avzi /backuphomedir /home/aloft/
building file list ... done
cd+++++++ backuphomedir/
>f+++++++ backuphomedir/_logout
>f+++++++ backuphomedir/_profile
>f+++++++ backuphomedir/rc
>f+++++++ backuphomedir/abc
>f+++++++ backuphomedir/xyz
sent 650 bytes received 136 bytes 1572.00 bytes/sec
total size is 324 speedup is 0.41
上面的命令帮助你找出源地址和目标地址之间文件或者目录的不同。
示例: 6 - 备份
rsync命令可以用来备份linux。
你可以在cron中使用rsync安排备份。
0 0 * * * /usr/local/sbin/bkpscript &> /dev/null
vi /usr/local/sbin/bkpscript
rsync -avz -e ‘ssh -p2093′ /home/test/ :/oracle/data/
rsync增量传输大文件优化技巧:
问题:
rsync用来同步数据非常的好用,特别是增量同步。但是有一种情况如果不增加特定的参数就不是很好用了。比如你要同步多个几十个G的文件,然后网络突然断开了一下,这时候你重新启动增量同步。但是发现等了好久都没有进行数据传输,倒是机器的IO一直居高不下。
原因:
rsync具体的增量同步算法不太清楚。根据它的表现来看,可能在增量同步已经存在的一个文件时,会校验已传输部分数据是否已源文件一致,校验完成才继续增量同步这个文件剩下的数据。所以如果对一个大文件以这样的算法来增量同步是非常花时间并且占用IO资源的。
方法:
半夜花了一个多小时查看了rsync的文档,发现有一个参数能快速恢复大文件的增量同步,–append。设置–append参数会在增量同步时计算文件大小并直接追加新的数据到文件,这样就省了费IO校验的过程。不过这个参数最好只在源文件和目标文件都不会更改的时候使用比较安全,比如备份的文件。
Linux系统调用设备的ioctl函数
2016年Linux认证基础知识:mysql数据库的全量备份
在linux 操作系统中uniq命令的说明和使用
Linux系统xlsatom命令如何使用
Linux cpuinfo系统详解
在Linux系统中使用lsof命令的教程
linux系统下如何使用assert函数
Linux系统下本机数据的自动备份
在linux系统下使用Godaddy域名更换DNS的方法
linux系统中UMASK权限的用法讲解
linux系统中scp命令的使用方法
Linux系统下的ipmitool工具应该怎样使用
如何在Windows系统中使用Linux分区的资源
Linux Mint Cinnamon下使用vino-server配置桌面共享的方法
Win10系统ntoskrnl.exe进程占用大量CPU和内存怎么办
实用的Linux/Unix系统磁带管理命令
php使用curl发送json格式数据实例
Linux系统使用NTP服务器的方法
Chinas Liu to seek injury advice in US soon英语作文
Linux系统下本机上数据的手工备份
CrystalDiskInfo硬盘检测工具使用教程
Windows平台下如何使用rsync实现文件同步
托福英语写作范文:Examinations exert a pernicious influence on educat
如何使用CrystalDiskInfo硬盘检测工具
使用python实现Linux异步epoll的代码
Ubuntu Linux系统的分区方案示例
ERP系统使用心得
Win10中如何安装SUSE Linux子系统
My Closest Friend in University我大学最好的朋友英语作文范文
Linux系统下tar命令的使用技巧
Java中synchronized的使用实例
高中英语作文及翻译:My Military Training Instructor
Linux安装和使用Glances的方法介绍
Win10系统提示Officebackgroundtaskhandler.exe弹窗问题的解决方
Linux系统shell工具打印输出
Linux系统备份的应用与技巧
linux系统下sudo命令使用方法
集体土地使用权中地籍数据库系统的运用论文
关于linux ar命令的使用说明和实例讲解分析
access数据库的使用实验报告