为系统监控添加日志功能

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在这个挑战中,你将通过添加日志记录功能来增强提供的 Linux 系统监控脚本。目标是在每个监控周期后,将资源使用情况(CPU、内存和磁盘)记录到日志文件中。这个任务将测试你修改和扩展 shell 脚本以包含基于文件的输出的能力。

基础脚本已经提供给你。你需要为其添加日志记录功能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/date("Date/Time Displaying") subgraph Lab Skills linux/echo -.-> lab-299447{{"为系统监控添加日志功能"}} linux/cat -.-> lab-299447{{"为系统监控添加日志功能"}} linux/date -.-> lab-299447{{"为系统监控添加日志功能"}} end

为系统监控添加日志功能

任务

  • 修改脚本 /home/labex/project/system_monitor.sh,将资源使用情况(CPU、内存和磁盘)追加到同一目录下名为 resource_usage.log 的日志文件中。每个日志条目应包含当前日期和时间。

要求

  • 日志文件必须命名为 resource_usage.log,并位于 /home/labex/project 目录下。
  • 每个日志条目必须包含日期、时间以及 CPU、内存和磁盘的资源使用百分比。
  • 日志记录必须在每个监控周期中资源使用值计算完成后实现。

提示

  1. 使用 date 命令获取当前日期和时间。查阅 man date 页面以了解如何格式化输出。
  2. 记得使用 >> 运算符将内容追加到文件中。避免每次覆盖文件。
  3. 在将资源使用值追加到日志文件之前,将它们组合成一个字符串。为此,可以使用变量和字符串插值。
  4. 确保日志文件与脚本位于同一目录下,使用绝对路径或相对路径,例如 /home/labex/project/resource_usage.log

示例

完成任务后,运行 /home/labex/project/system_monitor.sh 几秒钟,应该会生成一个 resource_usage.log 文件,其中包含类似以下内容的条目:

cat /home/labex/project/resource_usage.log
2024-12-04 14:00:01 CPU: 15% Memory: 45% Disk: 62%
2024-12-04 14:00:03 CPU: 18% Memory: 46% Disk: 62%
2024-12-04 14:00:05 CPU: 20% Memory: 47% Disk: 62%

退出脚本,你可以按下 Ctrl+C 发送中断信号。

系统监控日志示例
✨ 查看解决方案并练习

总结

在这个挑战中,你为 Linux 系统监控脚本添加了日志记录功能。该功能将资源使用情况记录到日志文件中,使用户能够跟踪资源消耗随时间的变化。这项任务巩固了你对 Bash 脚本中文件操作和日期命令的理解。