首先,我们需要3台RHEL6搭建实验所需要的环境。
第1台RHEL6:作为samba服务器,并且作为rsync+inotify的发起端。
第2台RHEL6:作为vsftp服务器,并且作为rsync+inotify的发起端。
第3台RHEL6:作为rsync+inotify的备份源。
大致步骤:
1.配置每台服务器的IP地址,使其物理通信没有问题。
2.配置samba服务器以及ftp 服务器,每台服务器新加一块硬盘,要求本地账户的基本验证(为了实现用户的quota配额)。
3.配置备份源,在samba ftp 服务器上安装inotify 以及ssh密钥,使其与备份源能无交互式登陆。
4.在ftp samba服务器上编写inotify触发式脚本,使其能正常实时将数据备份到备份源。
5.使用quota 对用户进行配额。
实现要求:ftp+samba+quota+rsync+inotify(实现FTP+SAMBA用户相互访问,用户限额,并实时备份)。
1.配置samba服务器,
IP复制为 192.168.10.200
开始部署samba服务器,
首先,我们需要新添加一块硬盘,在生产环境中samba服务器肯定是需要一块独立的硬盘,这样方便数据的备份。
查看我们新添加的第二块硬盘,然后使用fdisk 进行分区。
创建一个主分区即可,
查看一下创建好的分区
最后使用w 保存退出。
进行格式化分区,使分区有ext4的文件系统。
最后新建一个目录 mkdir /samba 并将分区挂载到 /samba 目录上,为了方便起见,我们可以设置自动挂载。
进入RHEL6光盘挂载点,
安装samba软件包。
查看一下软件包的安装情况。
所有包安装完毕,那么修改一下samba的主配置文件基于系统账户登录samba服务器
但是samba主配置文件里的注释和空行比较多,我们可以利用grep 将其过滤掉,过滤之前务必要将原配置文件做一个备份,以免在生产环境中配置文件被破坏影响服务。
如上图所示,进入到samba目录下对主配置文件进行备份。
通过grep 命令,对主配置文件进行过滤。
确保 security = user,目的是为了提高安全级别,使用系统账户访问samba服务,
将/samba目录以samba共享名共享给其他用户。
从第2台RHEL服务器上进行访问测试,测试OK!
PS:访问samba服务器时一定要注意iptables 防火墙,要允许 samba服务端口通信。
1、快速关闭SElinux,使用如下命令就可以:
/usr/sbin/setenforce 0 立刻关闭 SELINUX
/usr/sbin/setenforce 1 立刻启用 SELINUX
2、加到系统默认启动里面
echo "/usr/sbin/setenforce 0" >> /etc/rc.local
3、可以编辑配置文件达到同样的目的
vi /etc/selinux/conf
SELINUX=disabled
2.配置ftp服务器
IP地址为192.168.100.201
开始部署FTP服务器,
首先,我们需要新添加一块硬盘,在生产环境中samba服务器肯定是需要一块独立的硬盘,这样方便数据的备份。
查看我们新添加的第二块硬盘,然后使用fdisk 进行分区。
创建一个主分区即可,
查看一下创建好的分区
最后使用w 保存退出。
进行格式化分区,使分区有ext4的文件系统。
最后新建一个目录 mkdir / 并将分区挂载到 /ftp 目录上,为了方便起见,我们可以设置自动挂载。
进入RHEL6光盘挂载点,进行安装vsftpd 软件包。
新建一个ftp测试用户 ftptest
修改配置文件,要求使用本地用户的基本验证。
确保这几条存在。
在samba服务器上安装ftp客户端软件,然后测试FTP是否能正常登陆。
验证成功!
同样需要注意iptables 防火墙,允许TCP 21端口的通信。
1、快速关闭SElinux,使用如下命令就可以:
/usr/sbin/setenforce 0 立刻关闭 SELINUX
/usr/sbin/setenforce 1 立刻启用 SELINUX
2、加到系统默认启动里面
echo "/usr/sbin/setenforce 0" >> /etc/rc.local
3、可以编辑配置文件达到同样的目的
vi /etc/selinux/conf
SELINUX=disabled
3配置备份源。
IP地址为192.168.100.202
我们需要创建一个rput 用户来实现上传的操作。
但是对于rput用户来说,要能够写入才有权限做上行备份,建议使用ACL访问控制机制设置用户rput对/var/www/html的写入权限。
其中”-R”选项表示递归操作,”-m”选项表示修改权限,default表示在html/目录新建的文档用户rput也具有rwx权限。当需要清除所设置的ACL属性时,setfacl命令的-x或-b选项,分别表示用来个别删除和全部删除。到此SSH备份源配置完毕。
有了备份源服务器以后,就可以使用rsync工具来执行远程同步了。本文讲解的备份操作均在客户机(发起端,IP为:192.168.0.3)执行。实际上备份源与发起端可以是同一台主机,其效果相当于本地备份而不是异地备份。
rsync命令的基本用法:
格式:rsync 【选项】 源文件 目标文件
常见的选项:
-a,--archive 归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于-rlptgoD
-r,�Crecursive 对子目录以递归模式处理
-l,--links 表示拷贝链接文件
-p , --perms 表示保持文件原有权限
-t , --times 表示保持文件原有时间
-g , --group 表示保持文件原有属用户组
-o , --owner 表示保持文件原有属主
-D , --devices 表示块设备文件信息
-z , --compress 表示压缩传输
-H 表示硬连接文件
-A 保留ACL属性信息
-P 显示传输进度
-u, --update 仅仅进行更新,也就是跳过所有已经存在于目标位置,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
--port=PORT 指定其他的rsync服务端口
--delete 删除那些目标位置有而原始位置没有的文件
--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes /second
--filter “- 文件名”需要过滤的文件
--exclude= :需要过滤的文件
-v 显示同步过程的详细信息
4.实现rsync+inotify实时备份。
分别在samba服务器 和ftp服务器上安装私钥文件,以便于后面使用脚本不需要交互式输入密码验证身份。
在客户机上创建密钥对:
将公钥文件分发给服务器:
在客户机测试SSH的密钥验证:
成功实现免交互自动登录后,再次使用rsync访问SSH备份源时,也就不再提示需要密码验证了,注意,执行脚本的必须是在客户机中创创建密钥对的用户。
安装inotify-tools工具,使用inotify机制还需要安装inotify-tools,以便提供inotifywait、inotifywatch辅助工具程序,用来监控、汇总改动情况。
编译安装inotify-tools软件包:
以监控网站目录/var/www/html为例,可以先执行inotifywait命令,然后在另一个终端向/var/www/html目录下添加文件、移动文件,跟踪屏幕输出结果。其中选项”-e”用来指定要监控哪些事件(create,move,delete,modify,attrib 是指监听”创建 移动 删除 写入 属性更改” 事件),选项”-m”表示持续监控,”-r”表示递归整个目录,”-q”表示简化输出信息。
其他选项的含义:
-a 存档模式
-h 保存硬连接
-z 压缩文件数据在传输
-t 维护修改时间
--delete 删除于多余文件
在192.168.0.1服务器上执行下面的命令,监控/var/www/html的变化情况:
在另一个终端登录,在/var/www/html目录进行相关的操作,回到原来的终端查看监控变化情况。
使用inotifywait输出的监控结果中,每行记录中依次包括目录、事件、文件。据此可以识别变动情况。
编写触发式同步脚本:
为了简单起见,只要检测到变动时执行rsync上行同步操作即可。需要注意的是,当更新较频繁时,应避免并发执行rsync备份(当rsync进程已经存在则忽略本次同步,或根据rsync进程数量来决定是否同步)
先配置好基于密钥身份验证的SSH服务,确保在服务器192.168.0.1主机上使用adminput用户能无交互式远程登录备份主机192.168.0.3(在192.168.0.3主机上创建adminput用户并确保adminput用户拥有对目标目录/wwwroot属主和属组权限。chown adminput:adminput /wwwroot),设置adminput用户针对/wwwroot的acl权限。
脚本内容如下:
验证实时同步的效果。
5.使用quota 实现用户配额。
先对samba服务器进行配置。
首先查看一下quota软件包以及管理程序是否存在。
修改磁盘自动挂载的文件,用来支持磁盘配额。
使用mount 命令,查看当前分区是否支持quota配额,
若没有,则手动执行命令即可。
使用edquota -u sambatest 对测试用户进行磁盘配额
使用quotacheck -augcv 创建磁盘配额文件。
filesystem:表示本行配置记录对应的文件系统、分区,即配额的作用范围。
blocks:表示当前用户已使用的磁盘容量,默认单位为KB,该数值由edquota程序自动计算,无需修改。
inodes:表示当湖当前已经拥有的文件数量,也是由edquota程序自动计算。
soft:第3列的soft对应为磁盘容量的软限制数值,默认单位KB,第6列的soft对应为文件数量的软限制值,默认单位为个。
hard:第4列的soft对应为磁盘容量的软限制数值,默认单位KB,第7列的soft对应为文件数量的软限制值,默认单位为个。
启动文件系统的磁盘配额功能
最后验证磁盘配额功能