校园资源共享平台搭建与Shell自动化监控实战
一、项目背景
在校园网络环境中,资源共享与服务稳定性是保障教学、科研和办公效率的关键。中小型办公网络需要解决以下问题:
-
如何自动化分配IP地址?
-
如何实现Linux与Windows之间的文件共享?
-
如何确保关键服务(DHCP、NFS、FTP、Samba)稳定运行?
-
如何及时发现资源异常(CPU过高、磁盘满、服务宕机)?
本文记录了我从零搭建校园内部资源共享平台的完整过程,重点分享实战中遇到的故障与排查思路。
二、整体架构设计
| 主机名 | IP地址 | 作用 |
|---|---|---|
| DHCP/NFS/Samba/FTP服务器 | 192.168.116.30 | 核心共享服务 |
| Web服务器 | 192.168.116.30(复用) | HTTP文件访问 |
| Backup备份服务器 | 192.168.116.10 | 实时备份NFS数据 |
| 客户端 | 192.168.116.128 | 测试验证 |
| 客户端 | 192.168.116.10 | 测试验证 |
三、中小型办公网络搭建------DHCP服务
1. DHCP工作流程(通俗版)
-
客户端:有没有DHCP服务器?我需要IP!
-
服务器:你可以用192.168.1.100,租期24小时!
-
客户端:我决定用这个IP。
-
服务器:确认!正式归你使用。
2. 搭建步骤
固定服务器IP:
安装DHCP:
yum install dhcp
vim /etc/dhcp/dhcpd.conf
修改配置文件中的网段和子网掩码:
启动服务并关闭防火墙:
systemctl start dhcpd
systemctl stop firewalld.service
systemctl restart network
3. ⚠️ 踩坑记录:DHCP服务器与客户机通信故障
现象 :DHCP服务器可以分配IP地址,但无法ping通已获取IP的客户机。
排查过程:
-
确认客户机确实获得了正确的IP配置 → 正常
-
检查服务器ARP表 → 无客户机MAC记录
-
检查防火墙及网关配置 → 发现问题
根本原因:客户机防火墙丢弃了ICMP请求。
解决方案:永久关闭防火墙。
systemctl stop firewalld
systemctl disable firewalld
四、跨平台共享服务------Samba
1. 为什么需要Samba?
Windows用SMB协议,Linux用NFS协议,两者不兼容。Samba让Linux模拟Windows共享服务,实现跨平台文件共享。
2. Samba工作原理流程图
3. Linux与Linux之间共享文件
服务端安装Samba
配置防火墙和SELinux
客户端和服务端皆关闭服务器防火墙:systemctl stop firewalld
禁用防火墙开机自启:systemctl disable firewalld
设置为宽容模式:setenforce 0
vi /etc/selinux/config
SELINUX=disabled
查看端口情况:
创建Samba用户:
useradd smb1
smbpasswd -a smb1
客户端连接测试:
4. Linux与Windows共享文件
Windows本地访问测试:
五、文件传输服务------FTP
1. FTP工作模式对比
| 特性 | 主动模式 | 被动模式 |
|---|---|---|
| 数据连接方向 | 服务器→客户端 | 客户端→服务器 |
| 服务器端口 | 固定20端口 | 随机高端口 |
| 防火墙兼容性 | 差 | 优 |
主动模式流程图:
被动模式流程图:
2. 匿名用户FTP搭建
Windows测试:
Linux客户端测试:
3. 配置vsftpd
验证FTP服务:
六、Linux文件共享------NFS
1. NFS架构与原理
NFS基于RPC机制,由rpcbind(端口111)和nfs-utils组成。
通信流程图:
2. 环境准备
| 主机 | IP地址 | 作用 |
|---|---|---|
| web.tfsj.cn | 192.168.116.30 | Web服务器 |
| nfs.tfsj.cn | 192.168.116.10 | NFS服务器 |
| backup.tfsj.cn | 192.168.116.128 | Backup服务器 |
设置主机名和IP:
3. 搭建NFS服务
安装软件:
创建共享目录并配置exports:
启动服务并验证111端口:
4. Web服务器挂载NFS
安装Apache:
创建测试页面:
挂载NFS:
上传视频验证
视频播放效果:
5. inotify实时备份
安装inotify-tools
编写同步脚本:
执行脚本并验证备份:
6. ⚠️ 踩坑记录:NFS视频上传失败
现象 :执行yum install -y inotify-tools报错No match for argument。
排查过程:inotify-tools通常包含在EPEL仓库中,默认yum源找不到。
根本原因:EPEL仓库未启用。
解决方案:
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
yum install -y inotify-tools
7. NTP时间同步
安装并启动NTP服务:
yum install ntp -y
systemctl start ntpd
systemctl enable ntpd
七、Shell脚本自动化监控(核心亮点)
1. 监控功能说明
| 监控类型 | 检查周期 | 触发条件 | 告警方式 |
|---|---|---|---|
| 服务状态 | 10分钟 | DHCP/NFS/FTP/Samba异常 | 邮件 |
| CPU使用率 | 10分钟 | 超过80% | 邮件 |
| 磁盘使用率 | 10分钟 | 超过阈值 | 邮件 |
| 目录大小 | 10分钟 | 超过设定值 | 邮件 |
. 核心模块代码解析
主循环模块:60秒监测周期,协调各模块执行。
服务监控模块:通过SSH远程检查各服务systemctl状态。
资源阈值配置:
4. 实现效果展示
检测状态日志:
邮箱接收报警信息:
八、故障排查方法论总结
在项目实施过程中,我逐步形成了一套行之有效的故障排查方法:
| 步骤 | 操作 | 示例 |
|---|---|---|
| 1. 确认现象 | 明确故障表现 | DHCP能分配IP但ping不通 |
| 2. 查看日志 | 定位错误信息 | /var/log/samba/log.smbd |
| 3. 配置核查 | 检查关键参数 | smb.conf域配置 |
| 4. 环境隔离 | 关闭防火墙/SELinux | setenforce 0 |
| 5. 制定方案 | 最小化修改验证 | 启用EPEL仓库 |
九、项目总结
成果清单
-
✅ DHCP自动IP分配服务
-
✅ Samba跨平台(Linux↔Windows)文件共享
-
✅ FTP匿名/实名文件传输
-
✅ NFS网络文件系统+实时备份
-
✅ NTP时间同步
-
✅ Shell自动化监控告警系统





























