Chinaunix首页 | 论坛 | 博客
  • 博客访问: 500294
  • 博文数量: 110
  • 博客积分: 3971
  • 博客等级: 中校
  • 技术积分: 1175
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-20 23:27
文章分类

全部博文(110)

文章存档

2015年(2)

2014年(1)

2013年(1)

2011年(9)

2010年(28)

2009年(12)

2008年(13)

2007年(23)

2006年(21)

我的朋友

分类: WINDOWS

2007-06-12 00:29:55

前不久为公司架设了基于Samba3.0的文件服务器,一但成了服务器,那么就需要有重要的备份了。对于如何备份Samba文件服务器有关的文章很少,查了资料,决定还是用Rsync来备份Samba服务器的好!不会因为还原的时候因为属性和权限的问题而头痛等等。然后再用其他工具备份到磁带上,呵呵!比如:tar。

一、简介:

     rsync 本来是用以取代 rcp 的一个工具, 由Samba的开发者Andrew Tridgell开发。它目前是由 rsync.samba.org 维护.
       rsync 使用所谓的 "rsync 算法", 提供一个非常快速的档案传输方法, 使 local 和远程二部主机之间的档案达到同步, 它主要是传送二个档案的异动部份, 而非每次都整份传送, 因此速度相当地快,可自动执行增强版的更新。
     由于 rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式, 因此许多人拿 rsync 当做一个优异的备份工具来使用(拿来 update ISO 檔也很好用)。rsync有6种不同的用法,如local拷贝备份, local 档案藉由 rsh/ssh 传送至远方主机.... 在此我们主要介绍 rsync 的 daemon 模式.
       做备份要有两台机器,一台是备份服务器(Rsync Server);一台为要备份的机器(Rsync Client),比如我的Samba文件服务器。如果一台主机跑 rsync daemon 模式, 我们就称这台机器为一 rsync Server, 或者说这台主机是一台备份主机( Backup Server).Rsync Server使用873的服务通道(port)来进行基于CS的连接的.连接时, rsync Server 会检查密码是否相符, 若通过密码查核, 则开始进行档案传输.第一次连通完成时, 会把整份档案传输一次, 下一次就只传送二个档案之间异动的部份
      完成了备份之后,我们就可以把备份档案tar到磁带机上了:)。

二、安装Rsync到系统中:

      大家可以到http://rsync.samba.org上下载最新版本的rsync的2.6.2。然后解包安装:
#tar rsync-2.6.2.tar.gz
#cd rsync-2.6.2
#make && make install
       如果怕麻烦,就请下载rsync的rpm包,然后用rpm –ivh rsync-*.rpm安装即可搞定。若使用的是RedHat 、Mandrake 等 Linux 套件的系统,那么就不用安装rsync了,系统默认已经安装好了rsync,可以使用:rpm –q rsync查看有没有安装rsync包,下一步就可以准备配置rsync了。

三、设置Rsync Server端

      Rsync server需要设定四个方面:
1.规划建立备份目录区
2.设定: /etc/xinetd.d/rsync
3.设定: /etc/rsyncd.conf
4.设定: 密码文件。

说明如下:
1.规划建立备份目录区:
建议你在rsync server上开一个较大的磁盘分割区,并在其下建立好备份用的目录。比如:/home/asialinux。
2.设定: /etc/xinetd.d/rsync:
即#vi /etc/xinetd.d/rsync
#default: off
#description:The rsync server is a good addition to am ftp server,as it\
#       allows crc checksumming etc.
service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}
把其中的disable = yes 改为 disable = no之后退出保存就可以了,这还没有完成,还需启动rsync的服务。
#service xinetd restart
或者
#ntsysv
选中[*]rsync确定即可。
这样就开通了873通道(port),一旦有rsync client连接,xinetd就会把它转介给rsyncd跑port873

3.设定: /etc/rsyncd.conf
如果在/etc下没有这个文件,请不要迷惑,自己创建一个不就得了假设要备份的机器名为asialinux(IP:192.168.0.1),即Samba文件服务器:
#vi /etc/rsyncd.conf
[backup]
path = /home/server/asialinux
auth users = feixue
uid = root
gid = root
secrets file = /home/rsyncd.secrets
read only = no
退出vi编辑模式并保存。

说明:
[backup]代表欲备份的主机代号,可以和主机名相同,也可以自定。本例为backup,而没有用asialinux以便大家在下面使用rsync命令时加以理解。
Path就是用来存放备份档案的绝对目录,请你一定要用mkdir开设好,名称自定,如本例要在/home目录下面建立server目录以及server下面的子目录asialinux。
注:如果你没有建立目录、目录建立的不对或者路径不对,都将不能进行rsync的备份,情况如下所示:
#rsync –rvlHopDtS --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup
@ERROR:chroot failed
rsync:connection unexpectedly closed (75 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(165)

auth users代表授权的账号,名称可自定。
secrets file代表存储账号和密码的档案路径。

      当然,大家可以在/etc/rsyncd.conf内加入更多的区块,来备份多台主机或者一台主机的多个目录等,可以灵活运用。

4.设定:密码文件
如果没有和ssh在一块儿运用的话,rsyncd.secrets的内容很简单,格式为  账号:密码
例如:
feixue:asialinux
注:上述设定只是一个范例,请大家务必自定一组,千万不可以直接套用。
账号和密码设定完成之后,为了安全,还要对其属主和权限进行限定,我测试过,server和client端的权限都设为000时,只要密码两者相符,依然可以正常的备份。:D
#chown root.root rsyncd.secrets
#chmod 600 rsyncd.secrets
这样,我们的Rsync Server端就设定完成了,当然你可以查看rsync的记录日志档案,请参考:/var/log/rsyncd.log。

      下面的Rsync Client段的设定就简单多了。

四、设置Rsync Client端

      假设欲备份的机器名称为testsmb(IP:192.168.2.220)下的目录/home备份到Rsync Server(asialinux)上。可以做如下设定:
        1.设定密码文件
        2.测试rsync执行指令
        3.将rsync指令放入工作排程(crontab)

说明如下:
1.设定密码文件
假设把密码文件放在/root/rsyncd.secrets,内容很简单,只要含有一行密码即可:
#vi /root/rsyncd.secrets
asialinux
退出vi编辑模式并保存。
注:为了安全,设定密码档案的属性为:600。rsyncd.secrets的密码一定要和Rsync Server密码设定档案里的密码一样。如果不同,将会出现如下的错误:
#rsync –rvlHopDtS --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup
@ERROR: auth failed on module backup
rsync: connection unexpectedly closed (90 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(165)

2. 测试rsync执行指令
一切设定完之后,我们可以带着兴奋的心情来测试、体验一下Rsync的魅力吧:)
#rsync –rvlHopDtS --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup
如果出现如下所示的画面,那么恭喜一下,成功了:
#rsync –rvlHopDtS --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup
building file list ... done
.profiles/Application Data/Microsoft/Office/WEBFDR16.INF
.profiles/Application Data/Microsoft/WELCOME/DEFAULT.WBM

若出现如下:
#rsync –rvlHopDtS --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup
rsync: getaddrinto: testsmb 873: Name or service not know
rsync error: error in socket IO (code 10 ) at clientserver.c(83)

请分别编辑Rsync Server(假设hostname为asialinux,IP:192.168.0.1)和Rsync Client(假设hostname为testsmb,IP:192.168.0.2)的/etc/hosts文件,分别加入对方的IP地址和机器名,如下:
[root@asialinux root]#vi /etc/hosts
192.168.0.2        testsmb
退出vi编辑模式并保存。
[root@testsmb root]#vi /etc/hosts
192.168.0.1        asialinux
退出vi编辑模式并保存。
如果没有出现期望的画面,那么请检查一下你的设定。

3.将rsync指令放入工作排程(crontab)
现在可以把我们的备份工作置入排程了,假设每天凌晨1点开始备份工作:
#crontab –u root –e
0 1 * * * /usr/bin/rsync --password-file=/root/rsyncd.recrets /home feixue@testsmb::backup
如果你有其他的目录需要备份,则如法炮制吧!

    至于安全性方面大家可以自行解决吧!呵呵!
********注意所有服务器时间同步
让linux自动同步时间(shunz)
让linux自动同步时间(shunz)
vi /etc/crontab
加上一句:
00 0 1 * * root rdate -s time.nist.gov

time.nist.gov 是一个时间服务器.
阅读(6378) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-07-27 14:02:50

[url=http://roll.sohu.com/20110721/n314145287.shtml]前列腺炎[/url] [url=http://news.zj.vnet.cn/2011072117699987.html]前列腺炎[/url] [url=http://beijing.liebiao.com/yiliao/21410291.html]前列腺炎[/url]