linux中rsync异步服务器实现文件同步与备份

   Rsync 非常适合在两台机器之间快速同步大型、复杂的目录,例如论坛的附件目录。再配合 ssh ,则安全性也有保证,且可以利用 ssh public key 和 cron 来进行自动定时同步。

  说明:两台机器分别为 localhost 和 remotehost ;用户分别为 localuser 和 remoteuser。

  环境:FreeBSD 4.9 和 FreeBSD 6.1

 代码如下  

设置 ssh public key 认证
$ssh-keygen -t dsa -b 2048
生成所需的密钥
$scp /home/localuser/.ssh/id_dsa.pub remoteuser@remotehost:/home/remoteuser/.ssh/localuser_id_dsa.pub
将公钥拷贝至 remotehost
$ssh remoteuser@remotehost

  登录到?端

 代码如下  
$cd .ssh/ ; cat localuser_id_dsa.pub >> authorized_keys

  至此,设置 ssh 认证完毕。

  设置 rsync

  确认两端机器都安装 rsync , freeBSD 有 ports ,安装非常方便。

  写个脚本名为 backup.sh ,内容如下:

 代码如下  
#!/bin/sh
RSYNC=/usr/local/bin/rsync
SSH=/usr/bin/ssh
KEY=/home/localuser/.ssh /id_rsa
RUSER=remoteuser
RHOST=remotehost
RPATH=/remote/dir
LPATH=/this/dir
$RSYNC -az—delte -e “$SSH -i $KEY” $RUSER@$RHOST:$RPATH $LPATH

  -a 选项相当于选项 -rlptgoD 。简单来讲,此选项可递归并将几乎所有的东西同步过去,非常有用。注意的是, -a 默认不会保存 hardlinks ,不过可以单独用 -H 选项来实现。

  -z 选项在传输中压缩文件,这无疑加快同步速度。

  -delete 选项会删除接受方一些不应存在的文件,此文件在发送方已经被删除,这将保持目录完全同步。

  让 cron 每天凌晨1点来跑这个脚本

 代码如下  
$crontab -e
0 1 * * * /home/localuser/bin/backup.sh

  友情提示

  rsync是没有自动启动同步功能了,如果我们要定时去备份一个网站数据我们就需要用到定时功能了,上面的例子来使用到了linux中$crontab命令来定时执行备份数据脚本了哦。

时间: 2024-08-04 12:30:33

linux中rsync异步服务器实现文件同步与备份的相关文章

linux中rsync快速删除小文件方法

rsync是一款同步工具我之前只把它用来做数据同步操作没想过用来做文件删除操作,不过今天看到一篇文章可以实现文件删除操作,下面我们就一起来看看吧. 使用rsync同步一个空目录即可.对于万级文件的目录基本是秒删,回车就OK. 步骤如下: 1.建立一个空目录 mkdir -p /tmp/rsync_blank 2.确立需要清空的目标目录 /data/ooxx 3.使用rsync同步删除(注意目录后面的"/"),整体效率会快一个数量级的样子. rsync –delete-before -a

Linux下Rsync+sersync实现数据实时同步的例子

前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改)具体某一个文件或某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的这个文件或者这个目录. 二.Rsync+Inotify-tools与Rsync+sersync这两种架构有什么区别? 1.Rsync+Inotify-tools (1):Inotify-tools只能记录

linux下Sersync实现触发式文件同步

序言:如果我们后端有多台网站服务器或者文件服务器,而且没有好的文件同步机制,那么当我们升级程序或者更新文件的时候,就需要每台服务器或者目录都要更新,这样很容易出问题,并很容易导致两边的文件不一致,从而出现很多莫民其妙的问题.因此我们需要使用好的文件同步方式来实现几个后端服务器文件的同步,目前广泛采用的方案是使用rsync+inotify的方式来实现文件的触发更新.原理是采用inotify来对文件进行监控,当监控到文件有文件发生改变的时候,就会调用rsync实现触发式实时同步!本文就来详细介绍金山

如何在Linux中合并多个pdf文件?

风信网(ithov.com)原创文章:在Linux中进行批量处理pdf文件,我们需要将多个pdf文件合并成一个文件,我们可以使用以下命令来完成: [root@localhost www]#&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf ithov1.pdf ithov2.pdf ithov

如何在Linux中压缩及解压缩.bz2文件

对文件进行压缩,可以通过使用较少的字节对文件中的数据进行编码来显著地减小文件的大小,并且在跨网络的文件的备份和传送时很有用. 另一方面,解压文件意味着将文件中的数据恢复到初始状态. Linux 中有几个文件压缩和解压缩工具,比如gzip.7-zip.Lrzip.PeaZip 等等. 本篇教程中,我们将介绍如何在 Linux 中使用 bzip2 工具压缩及解压缩.bz2文件. bzip2 是一个非常有名的压缩工具,并且在大多数主流 Linux 发行版上都有,你可以在你的发行版上用合适的命令来安装它

Linux中利用两个现存文件,生成一个新的文件

Linux中利用两个现存文件,生成一个新的文件的方法 前提条件:每个文件中不得有重复行 1. 取出两个文件的并集(重复的行只保留一份) cat file1 file2 | sort | uniq 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) cat file1 file2 | sort | uniq -d 3. 删除交集,留下其他的行 cat file1 file2 | sort | uniq –u

redhat linux中如何播放mp3音乐文件?

redhat linux中如何播放mp3音乐文件? 自带的xmms 不能播放MP3(无声),要安装一个rpm 包: rpm -ivh xmms-mp3-1.2.7-13.p.i386.rpm 打开xmms,ctl-p,在font 栏中先在上半部的小框内打勾,再选择"fixed(misc) gbk-0 13"号字体即可显示中文歌曲名. 在音频输出插件中选择 "开放音频系统驱动程序1.2.7 [lioOSS.so],即可正常播放MP3文件.

Linux中向远程服务器上的所有用户发送信息

风信网(ithov.com)原创文章:Linux中向远程服务器上的所有用户发送信息,我们可以通过rwall命令来实现,使用rwall(向所有人远程写)命令同时发送消息到网络中的所有用户. rwall hosthttp://www.aliyun.com/zixun/aggregation/11696.html">name file 当使用CDE或OpenWindows等窗口系统时,每个窗口被看成是一次单个的登录;如果用户登录次数超过一次则消息直接发送到控制窗口

Linux 中清空或删除大文件内容的五种方法_Linux

在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何Linux命令行编辑器 去打开这些文件.那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清空文件内容的方法. 注意: 由于再Linux中一切皆文件,你需要时刻注意,确保你将要清空的文件不是重要的用户文件或者系统文件.清空重要的系统文件或者配置文件可能会引发严重的应用失败或者系统错误. 提示:在下面的示例中,我们将使用名为 access.log 的文件来作为示例样本. 1. 通过重定向到 Nul