### Linux7.x巡检代码知识点解析
#### 一、脚本基本信息
- **脚本名称**:1.sh
- **版本号**:V1.0
- **作者**:未填写
- **组织机构**:未填写
- **创建时间**:通过`date`命令动态获取
- **描述**:该脚本主要用于对Linux 7.x系统进行日常巡检,旨在自动化完成系统健康状况的检查,并记录结果。
#### 二、环境配置
- **路径设置**:脚本首先设置了一个名为`PATH`的环境变量,用于存储一系列可执行程序的搜索路径。
- `/usr/local/sbin`
- `/usr/local/bin`
- `/sbin`
- `/bin`
- `/usr/sbin`
- `/usr/bin`
- `/root/bin`
- **权限检查**:通过`id-u`命令检查当前执行用户的ID是否为0(即是否为root用户),如果不是,则输出提示信息并退出脚本。
- **API地址**:注释了两个API地址,分别用于上传主机日常检查数据和报告:
- `http://10.0.0.1:8080/api/uploadHostDailyCheck`
- `http://10.0.0.1:8080/api/uploadHostDailyCheckReport`
- **CentOS版本检测**:使用`awk`命令从`/etc/redhat-release`文件中提取CentOS版本信息。
#### 三、日志管理
- **程序路径**:获取脚本的完整路径,并根据该路径确定日志文件的存储位置。
- **日志目录创建**:如果指定的日志目录不存在,则自动创建。
- **日志文件名**:采用“`Hostname`-`日期`”格式命名日志文件。
#### 四、定义全局变量
- **报告基本信息**:
- `report_DateTime`:记录检查时的时间戳。
- `report_Hostname`:记录主机名。
- `report_OSRelease`:记录操作系统版本。
- `report_Kernel`:记录内核版本。
- `report_Language`:记录系统语言。
- `report_LastReboot`:记录上次重启时间。
- `report_Uptime`:记录系统运行时间。
- `report_CPUs`:记录物理CPU数量。
- `report_CPUType`:记录CPU型号。
- `report_Arch`:记录系统架构。
- `report_MemTotal`:记录总内存大小。
- `report_MemFree`:记录可用内存大小。
- `report_MemUsedPercent`:记录内存使用百分比。
- `report_DiskTotal`:记录磁盘总容量。
- `report_DiskFree`:记录剩余磁盘空间。
- `report_DiskUsedPercent`:记录磁盘使用率。
- `report_InodeTotal`:记录总的inode数。
- `report_InodeFree`:记录空闲inode数。
- `report_InodeUsedPercent`:记录inode使用率。
- `report_IP`:记录IP地址。
- `report_MAC`:记录MAC地址。
- `report_Gateway`:记录网关地址。
- `report_DNS`:记录DNS服务器地址。
- `report_Listen`:记录监听端口信息。
- `report_Selinux`:记录SELinux状态。
- `report_Firewall`:记录防火墙状态。
- `report_USERs`:记录所有用户。
- `report_USEREmptyPassword`:记录无密码的用户。
- `report_USERTheSameUID`:记录UID相同的用户。
- `report_PasswordExpiry`:记录密码过期情况。
- `report_RootUser`:记录root用户的登录情况。
- `report_Sudoers`:记录sudoers文件内容。
- `report_SSHAuthorized`:记录SSH公钥认证情况。
- `report_SSHDProtocolVersion`:记录SSHD协议版本。
- `report_SSHDPermitRootLogin`:记录SSHD是否允许root登录。
- `report_DefunctProsess`:记录僵尸进程。
- `report_SelfInitiatedService`:记录自启动服务。
- `report_SelfInitiatedProgram`:记录自启动程序。
- `report_RuningService`:记录正在运行的服务。
- `report_Crontab`:记录定时任务。
- `report_Syslog`:记录syslog配置。
- `report_SNMP`:记录SNMP配置。
- `report_NTP`:记录NTP配置。
- `report_JDK`:记录JDK安装情况。
#### 五、函数定义与调用
- **版本显示**:`version()`函数用于显示脚本的版本信息。
- **获取CPU状态**:`getCpuStatus()`函数用于获取CPU相关信息,包括物理CPU的数量等。
#### 六、总结
该脚本提供了一种系统化的方法来监控和维护Linux 7.x系统的稳定性与安全性。通过对关键系统组件和配置项的检查,可以帮助管理员及时发现潜在问题并采取措施进行修复,从而确保系统持续稳定运行。此外,脚本的设计考虑到了日志管理和权限控制等重要方面,进一步增强了其实用性和安全性。对于那些希望提高Linux服务器管理效率的企业和个人来说,这是一个非常有价值的工具。