Jump to content
新域网络技术论坛

FREEBSD远程同步备份实战


Jamers
 Share

Recommended Posts

参考资料:https://download.samba.org/pub/rsync/rsync.html

 

rsync是一个类unix系统下的数据镜像备份工具。远程同步 支持本地复制,或者与其他SSH、rsync主机同步。

 

安装:

cd /usr/ports/net/rsync
make install

配置rsyncd服务:

ee /usr/local/etc/rsync/rsyncd.conf

以下是添加的节点:

[demo]
path = /home/jamers/demo/
ignore errors
read only = false
#list = false
hosts allow = 192.168.1.78/24
hosts deny = 0.0.0.0/32
auth users = jamers
secrets file = /home/jamers/rsync/rsyncd.pwd

在rc.conf中添加内容:

rsyncd_enable="YES"

启动服务:

service rsyncd start

 

服务端配置完成。

 

客户端可以通过两种方式进行调用:

SSH模式,可以未配置rsyncd
rsync -e "ssh" -avzP --delete [email protected]<script data-cfhash='f9e31' type="text/javascript">
/*  */</script>:/home/jamers/demo/ /home/jamers/demo78

服务模式:
rsync -avzrpcP --delete --force [email protected]
/*  */::demo /home/jamers/demo78

客户端脚本:

ee /home/jamers/rsync/rsync.sh

#!/bin/sh
RSYNC=/usr/local/bin/rsync
RUSER=jamers
RPASS=/home/jamers/rsync/pwd
RHOST=192.168.1.77
RPATH=:demo
LPATH=/home/jamers/demo78/
$RSYNC -avzrpcP --delete --force --password-file=$RPASS $RUSER@$RHOST:$RPATH $LPATH

配置密码文件:

echo password > /home/jamers/rsync/pwd
chmod 600 /home/jamers/rsync/pwd
chmod +x /home/jamers/rsync/rsync.sh

目前就可以使用rsync.sh同步服务器内容了。

后续增加实时同步等其它应用。

Link to comment
Share on other sites

实时同步:

下载:https://github.com/rvoicilas/inotify-tools/wiki#getting

http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

curl -O http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar zvxf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make
make install

好象freebsd无法使用,,再议。。

Link to comment
Share on other sites

双向同步:

cd /usr/ports/net/unison
make install clean

两边服务器上都安装好unison。

用这种方式进行同步:

unison /usr/home/jamers/demo77/ ssh://jamers@192.168.1.78/demo78
unison -batch /usr/home/jamers/demo77/ ssh://jamers@192.168.1.78/demo78

SSH互相信任,免输密码,需要允许root登录:

分别在两台服务器上生成密钥,不要设置使用密码

mkdir -p /root/.ssh/
cd /root/.ssh/
ssh-keygen -t rsa
#按三次回车即可
scp -P id_rsa.pub 192.168.1.78:/root/.ssh/authorized_keys
#将生成的公钥复制到对方服务器
#请确认sshd_config里的设置 PermitRootLogin yes
#如果有多个密钥请自行设置: AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

然后测试一下,是否需要输入密码,如果不需要了,就PASS

ssh 192.168.1.78

 

继续使用unison同步测试:

 unison -batch /usr/home/jamers/demo77/ ssh://192.168.1.78//home/jamers/demo78

测试通过。

最终调整过后的调用示例:

unison -batch -times -perms -1 -owner -group /usr/home/jamers/demo77/ ssh://192.168.1.78//home/jamers/demo78
-force /usr/home/jamers/demo77/

#-batch 自动操作
#-times 保持源文件时间同步
#-perms -1 保持源文件权限
#-owner 保持源文件所有人
#-group 保持源文件组
#-force xxx 单向同步
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...