设为首页 收藏本站
查看: 1538|回复: 1

[经验分享] ftp+samba+quota+rsync+inotify 项目配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-9-16 09:14:31 | 显示全部楼层 |阅读模式
首先,我们需要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服务器肯定是需要一块独立的硬盘,这样方便数据的备份。

7730740_1379232810wC0D.jpg
查看我们新添加的第二块硬盘,然后使用fdisk 进行分区。
7730740_1379232811L7eb.jpg
创建一个主分区即可,
7730740_13792328132Dyg.jpg

查看一下创建好的分区
7730740_1379232814Sad8.jpg

最后使用w 保存退出。
7730740_1379232815glOc.jpg
进行格式化分区,使分区有ext4的文件系统。

7730740_13792328166ETO.jpg
最后新建一个目录 mkdir /samba 并将分区挂载到 /samba 目录上,为了方便起见,我们可以设置自动挂载。
7730740_1379232817Werw.jpg
7730740_137923281742C4.jpg






进入RHEL6光盘挂载点,
7730740_1379232817pXuJ.jpg
安装samba软件包。
7730740_1379232818M5HY.jpg
查看一下软件包的安装情况。
7730740_13792328189uPS.jpg
所有包安装完毕,那么修改一下samba的主配置文件基于系统账户登录samba服务器
7730740_1379232818akem.jpg
但是samba主配置文件里的注释和空行比较多,我们可以利用grep 将其过滤掉,过滤之前务必要将原配置文件做一个备份,以免在生产环境中配置文件被破坏影响服务。
7730740_1379232819sOcj.jpg
如上图所示,进入到samba目录下对主配置文件进行备份。
7730740_1379232819DTM0.jpg
通过grep 命令,对主配置文件进行过滤。
7730740_1379232820QjRO.jpg
7730740_1379232820Fv05.jpg
确保 security = user,目的是为了提高安全级别,使用系统账户访问samba服务,
将/samba目录以samba共享名共享给其他用户。
7730740_1379232821Pn0F.jpg



7730740_1379232821MkOZ.jpg
7730740_1379232822hgoB.jpg
从第2台RHEL服务器上进行访问测试,测试OK!
PS:访问samba服务器时一定要注意iptables 防火墙,要允许 samba服务端口通信。
7730740_1379232822yY0h.jpg
如果出现smbclient 错误“tree connect failed: NT_STATUS_BAD_NETWORK_NAME”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服务器肯定是需要一块独立的硬盘,这样方便数据的备份。

7730740_1379232824eari.jpg
查看我们新添加的第二块硬盘,然后使用fdisk 进行分区。
7730740_1379232827O8qR.jpg
创建一个主分区即可,
7730740_1379232828PR7s.jpg

查看一下创建好的分区
7730740_13792328294yrt.jpg

最后使用w 保存退出。
7730740_1379232829Wy6G.jpg
进行格式化分区,使分区有ext4的文件系统。

7730740_1379232829zcjQ.jpg
最后新建一个目录 mkdir / 并将分区挂载到 /ftp 目录上,为了方便起见,我们可以设置自动挂载。
7730740_1379232829KVDF.jpg




进入RHEL6光盘挂载点,进行安装vsftpd 软件包。
7730740_1379232829GLDN.jpg
新建一个ftp测试用户 ftptest
7730740_1379232829gRLS.jpg
7730740_1379232829TTpK.jpg
修改配置文件,要求使用本地用户的基本验证。

7730740_1379232830tdRC.jpg
确保这几条存在。
7730740_1379232830I0kO.jpg
7730740_1379232831Jmig.jpg
在samba服务器上安装ftp客户端软件,然后测试FTP是否能正常登陆。
7730740_1379232831BKx5.jpg
验证成功!
同样需要注意iptables 防火墙,允许TCP 21端口的通信。
如果出现新建的系统账户无法登陆FTP的话需要注意selinux的配置。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 用户来实现上传的操作。
7730740_1379232832D8aw.jpg


但是对于rput用户来说,要能够写入才有权限做上行备份,建议使用ACL访问控制机制设置用户rput对/var/www/html的写入权限。
7730740_1379232833W033.jpg
其中”-R”选项表示递归操作,”-m”选项表示修改权限,default表示在html/目录新建的文档用户rput也具有rwx权限。当需要清除所设置的ACL属性时,setfacl命令的-x或-b选项,分别表示用来个别删除和全部删除。到此SSH备份源配置完毕。
有了备份源服务器以后,就可以使用rsync工具来执行远程同步了。本文讲解的备份操作均在客户机(发起端,IP为:192.168.0.3)执行。实际上备份源与发起端可以是同一台主机,其效果相当于本地备份而不是异地备份。
rsync命令的基本用法:
格式:rsync 【选项】 源文件 目标文件
常见的选项:
-a,--archive 归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于-rlptgoD
-r,–recursive 对子目录以递归模式处理
-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服务器上安装私钥文件,以便于后面使用脚本不需要交互式输入密码验证身份。
在客户机上创建密钥对:
7730740_1379232836Mebx.jpg
将公钥文件分发给服务器:
7730740_1379232836YZ6P.jpg
在客户机测试SSH的密钥验证:
7730740_1379232836xWa4.jpg
成功实现免交互自动登录后,再次使用rsync访问SSH备份源时,也就不再提示需要密码验证了,注意,执行脚本的必须是在客户机中创创建密钥对的用户。

安装inotify-tools工具,使用inotify机制还需要安装inotify-tools,以便提供inotifywait、inotifywatch辅助工具程序,用来监控、汇总改动情况。
编译安装inotify-tools软件包:
7730740_1379232837HP4o.jpg
7730740_13792328375Rkh.jpg
7730740_1379232837PxSe.jpg
以监控网站目录/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的变化情况:
7730740_1379232837tcAe.jpg
在另一个终端登录,在/var/www/html目录进行相关的操作,回到原来的终端查看监控变化情况。
7730740_1379232838MWaV.jpg
使用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权限。
7730740_1379232838Fp4D.jpg
7730740_1379232838ePuS.jpg
脚本内容如下:
7730740_1379232841cnov.jpg
7730740_1379232841Ra41.jpg
7730740_1379232841stpz.jpg


验证实时同步的效果。

5.使用quota 实现用户配额。

先对samba服务器进行配置。
首先查看一下quota软件包以及管理程序是否存在。
7730740_1379232842KHxH.jpg

修改磁盘自动挂载的文件,用来支持磁盘配额。
7730740_1379232842Neb0.jpg

使用mount 命令,查看当前分区是否支持quota配额,
7730740_1379232845F7da.jpg

若没有,则手动执行命令即可。
7730740_1379232849jR3F.jpg

使用edquota -u sambatest 对测试用户进行磁盘配额
7730740_1379232849MLj5.jpg
使用quotacheck -augcv 创建磁盘配额文件。

filesystem:表示本行配置记录对应的文件系统、分区,即配额的作用范围。
blocks:表示当前用户已使用的磁盘容量,默认单位为KB,该数值由edquota程序自动计算,无需修改。
inodes:表示当湖当前已经拥有的文件数量,也是由edquota程序自动计算。
soft:第3列的soft对应为磁盘容量的软限制数值,默认单位KB,第6列的soft对应为文件数量的软限制值,默认单位为个。
hard:第4列的soft对应为磁盘容量的软限制数值,默认单位KB,第7列的soft对应为文件数量的软限制值,默认单位为个。

启动文件系统的磁盘配额功能
7730740_1379232849YvY8.jpg
最后验证磁盘配额功能
7730740_1379232850faB0.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-9272-1-1.html 上篇帖子: Rhel6服务器搭建DNS服务器 下篇帖子: 资源监控工具glances 项目

尚未签到

发表于 2014-1-3 19:56:05 | 显示全部楼层
我的过去 QQ个性网搜不到

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表