前言:

rsync下载 windows rsync搭建_服务端


配置unison:实现双向备份

RSYNC服务器

关于RSYNC

一款快速增量备份工具

Remote Sync,远程同步

支持本地复制,或者与其他SSH、rsync主机同步

官方网站: http://rsync. samba. org/

RSYNC特点

能更新整个目录和树和文件系统;

有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;

对于安装来说,无任何特殊权限要求;

对于多个文件来说,内部流水线减少文件等待的延时;能用rsh、ssh或直接端口做为传输入端口;

支持匿名rsync同步文件,是理想的镜像工具

同步源与发起端

rsync同步源:

指备份操作的远程服务器,也称为备份源

主要包括两种: rsync源、SSH源

rsync下载 windows rsync搭建_rsync下载 windows_02


rsync命令格式

rsync下载 windows rsync搭建_服务端_03


rsync命令的用法

rsync下载 windows rsync搭建_客户端_04

一:通过搭建SSH,实现单向同步

1:

查看两台机器的IP

服务器:192.168.142.131

rsync下载 windows rsync搭建_服务器_05


发起端:192.168.142.133

rsync下载 windows rsync搭建_服务器_06


2:

在两台机器上新建目录

服务器:

rsync下载 windows rsync搭建_服务端_07


发起端:

rsync下载 windows rsync搭建_客户端_08


3:

在一台机器上新建文件和用户,并修改文件权限

服务器:

rsync下载 windows rsync搭建_客户端_09


rsync下载 windows rsync搭建_服务端_10


rsync下载 windows rsync搭建_服务器_11


4:测试上传

(1)

服务器端:

rsync下载 windows rsync搭建_客户端_12

发起端:进行测试

rsync下载 windows rsync搭建_rsync下载 windows_13


ssh.txt成功上传到客户机(发起端),测试成功。

5:测试下载

客户端:

rsync下载 windows rsync搭建_rsync下载 windows_14


服务器端:

rsync下载 windows rsync搭建_服务器_15


客户机端新建的s.txt成功下载到服务器。

二:通过搭建rsync,实现单向同步

1:服务器端写一个主配置文件

rsync下载 windows rsync搭建_服务端_16

rsync下载 windows rsync搭建_服务器_17

2:写用户名和密码的对应关系

rsync下载 windows rsync搭建_服务器_18


rsync下载 windows rsync搭建_服务器_19


3:密码文件服务改为600,否则服务起不来

rsync下载 windows rsync搭建_客户端_20


4:开启服务:

rsync下载 windows rsync搭建_rsync下载 windows_21


5:建立以rsync方式搭建的同步源的 存放数据的目录

rsync下载 windows rsync搭建_服务端_22


6:进到里面

rsync下载 windows rsync搭建_客户端_23


7:来到客户端,进行同步测试

(1)先建一个本地目录

rsync下载 windows rsync搭建_客户端_24


(2)用命令进行同步:

注意:服务器和客户机关闭防火墙和SELINUX

rsync下载 windows rsync搭建_服务端_25

(3)查看结果:

rsync下载 windows rsync搭建_服务端_26


服务器端建立的rsync.txt,成功同步下载到客户端。

(4)测试客户端的新建文件能不能同步到服务器

客户端:

rsync下载 windows rsync搭建_服务端_27


发现报错,原因是服务器端vim /etc/rsyncd.conf中,rsync没有写权限。

rsync下载 windows rsync搭建_rsync下载 windows_28


若想能成功同步需要在服务器端vim /etc/rsyncd.conf中,修改如下:

rsync下载 windows rsync搭建_rsync下载 windows_29


rsync下载 windows rsync搭建_客户端_30


然后

chmod 777 /var/rsync

再次来到客户机上传,发现上传成功:

rsync下载 windows rsync搭建_rsync下载 windows_31

三:利用rsync搭建自动同步服务器!

1.:进行无密码验证环境准备,设置无密码验证使两台能无密码验证。
(1)

#在服务器端
ssh-keygen -t rsa    #设置无密钥认证
ssh-copy-id 192.168.142.133   #指定另外一台机器的ip

rsync下载 windows rsync搭建_客户端_32

#在客户端:
ssh-keygen -t rsa
ssh-copy-id 192.168.142.131

(2)进行测试:

# 服务器端
ssh 192.168.142.133 date

无密码验证成功:

rsync下载 windows rsync搭建_客户端_33

# 客户端
ssh 192.168.142.131 date

无密码验证成功:

rsync下载 windows rsync搭建_服务端_34


2:两台机器都装一下gcc

#服务器
yum -y install gcc*
#客户机
yum -y install gcc*

3:客户机和服务器均换光盘

eject弹出光盘,然后选择下面这个镜像连接

rsync下载 windows rsync搭建_服务端_35

rsync下载 windows rsync搭建_服务器_36


4.安装ocaml

#服务端和客户端都做以下操作
cd /media/20130806_063316/
cp * /usr/src
cd /usr/src
tar -zxf ocaml-3.10.1.tar.gz
cd ocaml-3.10.1
./configure
make world opt
make install
5.安装unison
#服务端和客户端都做以下操作
cd /usr/src
tar -zxf unison-2.13.16.tar.gz
cd unison-2.13.16
make UISTYPE=text THREADS=ture STATIC=true #出现make[1]: [tags] Error 127 (ignored)错误忽视即可
cp unison /usr/local/bin/
6.安装inotify-tools
#服务端和客户端都做以下操作
cd /usr/src
tar -zxf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make
make install
7.测试
#服务端
mkdir /server1
cd /server1
touch server1.txt
#客户端
mkdir /server2
cd /server2
touch server2.txt
#服务端
unison -batch /server1 ssh://192.168.142.133//server2

服务端:

rsync下载 windows rsync搭建_客户端_37


再次ls后,/server1下应多了server2.txt;/server2下应多了server1.txt。

8:写脚本调用执行文件自动同步

服务器端:

cd ~
vim 1.sh
#!/bin/bash
ip2="192.168.142.133"
src2="/server1"
dst2="/server2"
/usr/local/bin/inotifywait -mrq -e create,delete $src2 | while read line; #监控src2目录创建和删除
do
    /usr/local/bin/unison -batch $src2 ssh://$ip2/$dst2
echo -n "$line" >> /var/log/inotify.log #保存日志
echo `date | cut -d " " -f1-4` >>/var/log/inotify.log #截取第1到第4部分存到日志
done

rsync下载 windows rsync搭建_客户端_38

bash 1.sh

到客户机执行以下操作:

ssh 192.168.142.131

cd /server1/

touch 1.txt

然后来到服务器查看如下

rsync下载 windows rsync搭建_服务端_39

发现客户端刚写的1.txt在服务器也有了,说明文件自动同步成功。

可以

vim /var/log/inotify.log #查看监听日志里记录的变化

rsync下载 windows rsync搭建_服务端_40


由于我多练习了几次,所以有4条变化。

四:利用nfs搭建简单的文件同步服务器

nfs:网络文件系统,红帽7版之前透明传输,安全性较差,一般用在局域网里,要想通过公网验证一般用ftp来做。
服务端:
1:安装两个工具

yum -y install rpcbind #安装nfs用到的工具,远程终端调用,用来响应rpcbind,默认开启
yum -y install nfs-utils #安装nfs用到的工具包

2:写文件共享的列表

vim /etc/exports
#读写权限
/public 192.168.142.0/24(rw,sync)
#只读权限
/share 192.168.142.133(ro,sync)

3:创建共享目录和文件

cd /
mkdir public share
chmod 777 public/
chmod 777 share/
cd public/
touch public.txt
cd /share/
touch share.txt

4:重启服务

service rpcbind restart
service nfs restart

5:查看本机共享列表

showmount -e 127.0.0.1

rsync下载 windows rsync搭建_rsync下载 windows_41

客户端:
1:测试

showmount -e 192.168.142..131

rsync下载 windows rsync搭建_rsync下载 windows_42

显示两个服务端共享的文件夹列表,说明客户端能收到服务端共享的资源。
2.挂载服务端的/public目录测试

mount -t nfs 192.168.201.137:/public /mnt
#查看
mount
cd /mnt/
ls
#写入测试
touch qwzf
ls
#卸载
cd ~
umount /mnt/

rsync下载 windows rsync搭建_服务端_43

3.挂载服务端的/share目录测试

mount -t nfs 192.168.142.131:/share /mnt/
#写入测试
cd /mnt/
touch wmm

rsync下载 windows rsync搭建_服务器_44


无法写入

两条记录,一条读写访问,一条只读访问,验证成功。

4.设置自动挂载

vim /etc/fstab

rsync下载 windows rsync搭建_服务端_45

cd ..
umount /mnt/
mount -a
mount | tail -1

rsync下载 windows rsync搭建_服务端_46


实验完毕。

感悟:

本次Linux实验我明白了单向文件同步,RSYNC服务的SSH源和rsync源进行下载和上传。也了解到自动文件同步的实现和脚本的编写。同时也了解nfs通过挂载实现文件功能共享。但是过程中还是出了很多问题,希望下次能减少出错的操作,但是每次出错要分析清楚出错的原因,增强解决问题的能力。


拓展


1:目录同步

mkdir /aa
mkdir /bb
mount --bind /aa /bb
#写入fstab
vim /etc/fstab
/aa      /bb    ext4   defaults,bind   0 0

2:设置权限

mkdir /a
useradd manager
setfacl -m u:manager:rwx /a
useradd qwzf
setfacl -m u:qwzf:r-x /a
#删除权限
setfacl -x u:qwzf /a
setfacl -b /a
#设置默认权限
setfacl -m default:u:manager:rwx /a