rsync
rsync命令的用法:
基本格式: rsync [选项] 原始位置目标位置
常用选项:
-a:归档模式, 递归并保留对象属性, 等同于-rlptgoD
-v:显示同步过程的详细(verbose) 信息
-z:在传输文件时进行压缩( compress)
-H:保留硬连接文件
-A:保留ACL属性信息
–delete:删除目标位置有而原始位置没有的文件
-r:递归模式,包含目录及子目录中所有文件
-1:对于符号链接文件仍然复制为符号链接文件
-p:保留文件的权限标记
-t:保留文件的时间标记
-g:保留文件的属组标记(仅超级用户使用)
-o:保留文件的属主标记(仅超级用户使用)
-D:保留设备文件及其他特殊文件
操作
1.搞一个需要同步的文件并且分权限
mkdir /var/ssh
cd /var/ssh/
touch /var/ssh/ssh.txt
useradd a1
passwd a1
useradd a2
passwd a2
chown a1:a1 /var/ssh/
2.第二个服务器同步一下
rsync -avz a2@192.168.84.130:/var/ssh/* /ssh/
rsync -avz /ssh/* a1@192.168.84.130:/var/ssh/#反向同步
ssh
1.设置免密(两个服务器都要搞)
ssh-keygen -t rsa
ssh-copy-id 192.168.84.133
ssh 192.168.84.133 date
2.安装gcc
yum -y install gcc*
3.依次安装需要的服务(给的光盘里有)
tar -zxf ocaml-3.10.1.tar.gz
cd ocaml-3.10.1
./configure
make world opt
make install
cd ..
tar -zxf unison-2.13.16.tar.gz
cd unison-2.13.16
make UISTYLE=text THREADS=ture STATIC=true
cp unison /usr/local/bin/
cd ..
tar -zxf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make
make install
4.搞两个文件交试试同步
mkdir /S1
cd /S1/
touch happy1.txt
unison -batch /S1/ ssh://192.168.84.133//S2#S2是另一个服务器的
PS:如果写脚本的话,内容
#!/bin/bash
ip2="192.168.84.133"
src2="/S1"
dst2="/S2"
/usr/local/bin/inotifywait -mrq -e create,delete $src2 | while read line;
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
done
NFS
1.安装两个包
yum -y install rpcbind
yum -y install nfs-utils
2.创建文件,开启服务
vim /etc/exports
chmod 777 /S1#改权限
service rpcbind restart
service nfs restart
showmount -e
PS:exports写什么?
S1 192.168.84.0/24(rw,sync)#S1文件夹可以被192.168.84.0网段访问,权限读写
PS:ps:showmount -e报错为“clnt_create: RPC: Unknown host”
解决方法:
查找主机名hostname
写到文件里vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.84.130 bogon#这一行是新加的
3.另一个服务器的操作
之前的两个包要装一下,同步给挂载一样
yum -y install rpcbind
yum -y install nfs-utils
showmount -e 192.168.84.130
mount -t nfs 192.168.84.130:/S1 /mnt
ls /mnt/
PS:如果你发现你的网断了:
chkconfig NetworkManager off
chkconfig network on
service NetworkManager stop
service network start