一。NFS共享服务
1.安装nfs服务器:
yum install nfs-utils -y
2.配置nfs服务器:
cat /etc/exports
/home/work 192.168.0.*(rw,sync,all_squash) 一般这配置就可以
- rw:read-write,可读写; 注意,仅仅这里设置成读写客户端还是不能正常写入,还要正确地设置共享目录的权限,参考问题7
- ro:read-only,只读;
- sync:文件同时写入硬盘和内存;
- async:文件暂存于内存,而不是直接写入内存;
- no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
- root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
- all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
- anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
- anongid:匿名用户的GID值。
3.查看nfs服务器和客户端配置参数:
cat /var/lib/nfs/etab (服务端)
cat /proc/mounts (客户端查看挂载情况,卡住的情况必须用这个命令查看,不要用df -h)
二。RSYNC共享服务
1.客户端rsync本地工作模式:
rsync -avz --delete /etc/ /tmp/ (将etc下面的内容同步到tmp下面,并删除多余的文件。)
2.rsyn的远程同步模式:
rsync -avzP -e "ssh -p 22" /tmp/ root@192.168.88.240:/tmp/ #将本地tmp目录下面的文件同步到240
3.rsync的服务器模式的配置文件/etc/rsyncd.conf:
查看帮助 man rsyncd.conf
#rsync.conf start###
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 192.168.88.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup #虚拟用户
secrets file = /etc/rsync.password
########################################
[backup]
comment = linux1 backup #欢迎语
path = /backup
useradd rsync -s /sbin/nologin -M #创建同步服务的用户
echo "rsync_backup:wmj" > /etc/rsync.password #创建密码文件
chmod 600 /etc/rsync.password #修改密码文件的权限
4.启动rsync的服务端:
rsync --daemon
5.rsync客户端的配置:
echo "wmj" >/etc/rsync.password #创建客户端密码文件(只要写密码不要用户)
chmod 600 /etc/rsync.password
rsync -avz --delete /tmp/ rsync_backup@192.168.88.240::backup --password-file=/etc/rsync.password (将客户端的tmp目录里面的内容推送到服务端)
二。inotify服务
1.在客户端上安装inotify:
wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
./configure
make&&make install
2.监听/tmp/目录的增,删,改操作并按格式打印:
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create,delete,close_write /tmp/ (打印的日志格式为:“29/05/16 07:55 /tmp/123”)
3.使用inotify监听目录实时rsync同步脚本:
#!/bin/bash inotify=/usr/local/bin/inotifywait $inotify -mrq --format '%w%f' -e create,delete,close_write /tmp/ \ |while read file do rsync -az --delete /tmp/ rsync_backup@192.168.88.240::backup --password-file=/etc/rsync.password done
4.优化inotify参数:
# 在/proc/sys/fs/inotify目录下有三个文件,对inotify机制有一定的限制
[root@web ~]# ll /proc/sys/fs/inotify/
总用量0
-rw-r--r--1 root root 09月923:36 max_queued_events
-rw-r--r--1 root root 09月923:36 max_user_instances
-rw-r--r--1 root root 09月923:36 max_user_watches
echo 50000000>/proc/sys/fs/inotify/max_user_watches -- 把他加入/etc/rc.local就可以实现每次重启都生效
echo 50000000>/proc/sys/fs/inotify/max_queued_events