用rsync做备份

Home Home
引用 | 编辑 love104
2005-08-08 10:46
楼主
推文 x0
转贴文章:酷学园 http://phorum.study-area.org/


用rsync做备份
会用rsync 是因为我用mirror去备份windows上的东西时,会有目录结构上的问题.
且我要备份的档案都上百MB用mirror去备份也不实际,基于这二点我就试了rsync.
http://phorum.study-area.org/viewtopic.php?p=75850#75850

关于rsync 的优点可以参考下面的连结,也是我实作时参考的资料.
http://linux.tnc.edu.tw/techdoc/rsync.htm
http://www.linux.org.tw/~pahud/rsync.html
http://www.fanqiang.com/a6/b7/20010908/1305001258_b.html



rsync on linux

检查有没有安装rsync套件.

rpm -qa | grep rsync

若没有,到
http://rpmfind.net/linux/rpm2html/search.php?query=rsync

http://rsync.samba.org/download.html
下载安装.


设定Rsync Server.


vi /etc/xinetd.d/rsync

代码:
disable = no


service xinetd restart



[主机代号:自订]
path = 备份资料放置的路径
auth users = 定义援权的帐号
uid = 应是执行时的uid
gid = 应是执行时的gid
secrets file = 认证密码档的位置
read only = 是否唯读

自行建立rsyncd.conf
vi /etc/rsyncd.conf

代码:
[apache]
path = /home/users/public/Studio
auth users = apache-admin
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

自行建立rsyncd.secrets
vi rsyncd.secrets

代码:
apache-admin:secret


chown root:root /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets



设定Rsync Client.

自行建立rsyncd.secrets
vi /etc/rsyncd.secrets

代码:
secret


chmod 600 /etc/rsyncd.secrets

执行
/usr/bin/rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd.secrets /var/www/html apache-admin@172.16.7.253::apache

看看/home/users/public/Studio看看有没有备份过来吧!! ^^
另外若"/var/www/html apache-admin@172.16.7.253::apache"的位罝对调,则备份的方向也对调哦!


ps: /var/www/html 为client 端,欲备份的目录,而172.16.7.253为server ip


参考资料
http://linux.tnc.edu.tw/techdoc/rsync.htm
http://www.linux.org.tw/~pahud/rsync.html
http://www.fanqiang.com/a6/b7/20010908/1305001258_b.html





RSync 实作纪录于 Windows 2k pro

这是我参考下面这份文件做出来的.
http://www.numbski.net/rsync/

下载http://users.tseinc.com/~numbski/rsync.zip,并解压至c:\rsync
复制 cygwin1.dll 到C:\WINNT\system32下.

接着进command line,执行下面三行.

cd c:\rsync
instsrv Rsync "c:\rsync\srvany.exe"
exit

按"开始","执行",下"regedit"

搜找下列机码.
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Services -> Rsync

在Rsync按右键,"新增"->"机码",名称改为Parameters
在Parameters按右键,"新增"->"字串值",名称改为AppDirectory,执行它,并在"值的资料"输入"c:\rsync"
在Parameters按右键,"新增"->"字串值",名称改为Application,执行它,并在"值的资料"输入"c:\rsync\rsync.exe"
在Parameters按右键,"新增"->"字串值",名称改为AppParameters,执行它,并在"值的资料"输入--config="c:\rsync\rsyncd.conf" --daemon

再来执行"控制台"->"系统管理工具"->"服务"找到Rsync按右键"启动"

接着进command line执行:

telnet localhost 873

接着下quit

cd c:\rsync
rsync localhost::

您应该会看到"mame"出现在萤幕上.
若看到那表示,您的rsync己经是work的了. ^^

接下来,在下将在linux及windows 2k pro上做测试,二个平台互为server及client,并使用不认证使用者的方式.
环境:
pc-a为linux
ip为172.16.7.253
欲备份的目录为 /rsync_data/output
备份的目录为 /rsync_data/input


pc-b为windows
ip为 172.16.4.4
欲备份的目录为 c:\rsync_data\output
备份的目录为 c:\rsync_data\input


先设定linux上的rsyncd.conf档.

vi /etc/rsyncd.conf

代码:
[pc-a_output]
path = /rsync_data/output
readonly = yes


再设windows上的rsyncd.conf档.

编辑 C:\rsync\rsyncd.conf

代码:
[pc-b_output]
path = c:\rsync_data\output
readonly = yes


这样就设好了,分别执行看看(执行时别忘了,copy 些不同的资料到pc-a及pc-b的output目录哦!).

从pc-1上把pc-b上的rsync server 备份回来.

/usr/bin/rsync -arv --delete 172.16.4.4::pc-b_output /rsync_data/input

从pc-2上把pc-a上的rsync server 备份回来.

c:\rsync\rsync.exe -arv --delete 172.16.7.253::pc-a_output c:\rsync_data\input

好啦!看看pc-a及pc-b的input目录下,是不是有对方output目录的东西呢?若看到了就成功啰!

另外,我在linux与linux加上AUTH皆没问题,但一遇上windows就会 auth failed,不清楚为什么,所以只好先用不认证的方式了.

在windows上使用sync2nas做client端.

算是下面这份文件的补充吧!
http://phorum.study-area.org/viewtopic.php?t=11220&highlight=rsync


到这下载安装.
http://sourceforge.net/project/showfiles.php?group_id=48366&release_id=79188
执行.
从左上角选择您欲备份的资料然后按">>"丢到右边.

再来要设定左下角的项目.

Appliance or Virtual IP: 输入您的server位址
Share Name:主机代号
Remote Forder:远端目录,若这里有定义,则资料将置此目录下.
User Name:帐号
Password:密码
Rsync Options:参数

Appliance or Virtual IP: 172.16.7.253
Share Name:apache
Remote Forder:
User Name:apache-admin
Password:secret
Rsync Options:-vzrtopg --progress --delete

若要更改User Name及Rsync Options可从功能表的Advanced将其enable.

右下角设定定,执行的时间及执行身份
例如:
选Replicate Once Immediately就是马上执行.

最后在按Apply执行吧!

献花 x0
引用 | 编辑 mnbmnb5266
2010-08-25 19:52
1楼
  
谢谢楼主了,一般的的备份文件也只是交给电脑中的维护计划去做,并不用什么手动的手段

献花 x0