首页IT科技linux数据备份命令(Linux中使用数据备份同步工具Rsync的实例教程)

linux数据备份命令(Linux中使用数据备份同步工具Rsync的实例教程)

时间2025-04-29 03:00:27分类IT科技浏览2912
导读:对于运维人员来说,数据备份是最重要的工作之一,rsync就是一款通过网络备份重要数据的工具/软件。...

对于运维人员来说            ,数据备份是最重要的工作之一               ,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

.bash_logout

.bash_profile

.bashrc

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

./

.bash_logout

.bash_profile

.bashrc

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/ azmath@192.168.1.4:192.168.1.4:/share/rsysnctest/

Password:

building file list ... done

./

.bash_logout

.bash_profile

.bashrc

sent 514 bytes received 92 bytes 1212.00 bytes/sec

total size is 324 speedup is 0.53

上面的命令允许你在本地和远程机器之间同步               。你可以看到                  ,在同步文件到另一个系统时提示你输入密码。在做远程同步时           ,你需要指定远程系统的用户名和IP或者主机名           。

示例: 4-远程同步到本地

代码如下:

[root@localhost /]# rsync -avz azmath@192.168.1.4:192.168.1.4:/share/rsysnctest/ /home/aloft/

Password:

building file list ... done

./

.bash_logout

.bash_profile

.bashrc

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/.bash_logout

>f+++++++ backuphomedir/.bash_profile

>f+++++++ backuphomedir/.bashrc

>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/ root@192.168.1.150:/oracle/data/

rsync增量传输大文件优化技巧:

问题:

rsync用来同步数据非常的好用,特别是增量同步      。但是有一种情况如果不增加特定的参数就不是很好用了       。比如你要同步多个几十个G的文件               ,然后网络突然断开了一下              ,这时候你重新启动增量同步               。但是发现等了好久都没有进行数据传输  ,倒是机器的IO一直居高不下         。

原因:

rsync具体的增量同步算法不太清楚     。根据它的表现来看            ,可能在增量同步已经存在的一个文件时               ,会校验已传输部分数据是否已源文件一致    ,校验完成才继续增量同步这个文件剩下的数据              。所以如果对一个大文件以这样的算法来增量同步是非常花时间并且占用IO资源的            。

方法:

半夜花了一个多小时查看了rsync的文档         ,发现有一个参数能快速恢复大文件的增量同步                ,–append   。设置–append参数会在增量同步时计算文件大小并直接追加新的数据到文件      ,这样就省了费IO校验的过程              。不过这个参数最好只在源文件和目标文件都不会更改的时候使用比较安全      ,比如备份的文件               。
声明:本站所有文章                 ,如无特殊说明或标注        ,均为本站原创发布。任何个人或组织   ,在未征得本站同意时                  ,禁止复制      、盗用                 、采集        、发布本站内容到任何网站   、书籍等各类媒体平台           。如若本站内容侵犯了原著者的合法权益           ,可联系我们进行处理                 。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
jquery的使用步骤(基于jQuery的三种AJAX请求) rust belt dystopia 研究生英语(rust写一个im聊天服务)