Advertisement

使用 Bash 脚本在每次登录 Shell 时查看 Linux 系统信息

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本教程介绍如何利用Bash脚本自动获取并展示Linux系统的关键信息,如CPU、内存和磁盘状态,使用户每次打开Shell都能快速了解系统运行状况。 在 Linux 系统中,有许多命令可以用来查看系统信息,如处理器详情、生产商名称及序列号等。为了收集这些数据可能需要执行多个命令,并且记住所有相关命令及其选项可能会有难度。因此,编写一个自定义的 shell 脚本会非常有用。以前我们为不同目的写过许多 bash 脚本。现在我们将创建一个新的脚本来在每次登录时显示所需的信息。该脚本包含六个部分: 1. 通用系统信息; 2. CPU 和内存使用情况; 3. 硬盘使用率超过80%的情况; 4. 列出系统的 WWN(World Wide Name)详情; 5. Oracle 数据库实例的状态; 6. 可更新的软件包列表。 根据具体需求,我们已经将可能需要的信息添加到了脚本中。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 使 Bash Shell Linux
    优质
    本教程介绍如何利用Bash脚本自动获取并展示Linux系统的关键信息,如CPU、内存和磁盘状态,使用户每次打开Shell都能快速了解系统运行状况。 在 Linux 系统中,有许多命令可以用来查看系统信息,如处理器详情、生产商名称及序列号等。为了收集这些数据可能需要执行多个命令,并且记住所有相关命令及其选项可能会有难度。因此,编写一个自定义的 shell 脚本会非常有用。以前我们为不同目的写过许多 bash 脚本。现在我们将创建一个新的脚本来在每次登录时显示所需的信息。该脚本包含六个部分: 1. 通用系统信息; 2. CPU 和内存使用情况; 3. 硬盘使用率超过80%的情况; 4. 列出系统的 WWN(World Wide Name)详情; 5. Oracle 数据库实例的状态; 6. 可更新的软件包列表。 根据具体需求,我们已经将可能需要的信息添加到了脚本中。
  • Linux Shell询NUMA
    优质
    本文介绍了如何使用Linux Shell脚本编写程序来查询和分析系统的NUMA架构信息,帮助用户更好地理解与优化多处理器系统性能。 Linux Shell脚本查看NUMA(Non-Uniform Memory Access)信息是针对系统硬件性能优化的重要步骤。NUMA是一种内存架构,在这种架构下,不同的处理器访问内存的速度不同,这取决于它们与内存控制器的距离。在多处理器系统中,理解NUMA拓扑对于任务分配和资源利用率的优化至关重要。 本段落提供的脚本主要用于获取Linux系统的NUMA相关信息,包括逻辑处理器数量、物理CPU插槽数以及每个插槽内的核心信息等。以下是脚本中各个函数的具体解释: 1. `get_nr_processor()`: 这个函数用于计算系统中的逻辑处理器总数。通过读取`/proc/cpuinfo`文件并查找以processor开头的行,然后使用`wc -l`命令统计这些行的数量来获取结果。 2. `get_nr_socket()`: 函数用来确定物理CPU插槽的数量。同样地,从`/proc/cpuinfo`中提取physical id字段,并用`awk`工具对它们进行排序和去重处理后计数得到最终的插槽数量。 3. `get_nr_siblings()`: 这个函数获取每个处理器兄弟核心(即在同一物理插槽内与之共享资源的核心)的数量。通过使用`grep`命令筛选出`sibling`字段,再利用`awk`工具提取和排序这些值以得到结果。 4. `get_nr_cores_of_socket()`: 该函数用于确定每个CPU插槽中的核心数。同样从`/proc/cpuinfo`文件中读取信息,并根据cpu cores字段进行去重处理后计数得出最终的核心数量。 5. 脚本的主体部分创建了一个表格,展示各个处理器的Processor ID、Core ID和Socket ID等关键信息,通过遍历`/proc/cpuinfo`文件逐行解析出相关信息并填充到该表中。 6. 此外脚本还提供了对系统CPU信息的整体总结,包括逻辑处理器数、物理插槽数量以及每个插槽内的核心数量。如果总的核心数等于逻辑处理器的数量,则表明超线程未开启;反之则表示超线程已启用状态。 通过运行此脚本,用户可以迅速获取关于NUMA架构的详细信息,这对于在云计算环境中进行性能优化和资源调度非常有用。例如,在部署虚拟机或容器时了解NUMA拓扑可以帮助更好地分配系统资源,避免跨节点通信所带来的性能损失问题。在高负载及高性能计算场景下正确理解和利用这些特性能够显著提高系统的整体效率。
  • Shell计近15日内
    优质
    简介:本文介绍了如何使用Shell脚本来统计过去15天内系统中所有登录过的用户信息,为系统管理员提供了一个便捷且高效的工具。 通过Shell脚本统计最近15天内登录过当前主机的用户信息。
  • 使Shell运行jps出现:-bash: jps: command not found错误
    优质
    本文介绍了如何解决在Linux系统中使用Shell脚本执行jps命令时遇到的“command not found”问题,并提供了相应的解决方案。 我构建了一个Hadoop集群,并打算编写一个Shell脚本来检查每个节点上的进程情况。起初我认为这个shell脚本很简单: ```bash #!/bin/bash # 查看每个节点运行情况 for((host=101; host<108; host++)); do echo -----------hadoop$host------------- ssh hadoop$host jps done ``` 这里假设服务器的主机名从`hadoop101`到`hadoop107`,并且已经配置了SSH密钥对。然而,在运行这段脚本时遇到了错误:-bash: jps: command not found。 这个问题的原因可能是Hadoop相关命令没有正确地添加到了系统的环境变量中,或者在执行ssh连接的用户环境中缺少必要的路径设置。为了解决此问题,需要确保每个节点上的SSH登录用户能够访问到Java和Hadoop的相关目录,并且这些工具已经安装并且配置完成。可以通过修改用户的bashrc或profile文件来解决这个问题。 具体来说,在`~/.bash_profile` 或 `~/.bashrc` 文件中添加以下行: ```bash export JAVA_HOME=/path/to/java export HADOOP_HOME=/path/to/hadoop PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH ``` 确保替换上述命令中的路径为你安装Java和Hadoop的实际位置。完成这些更改后,重新登录或运行`source ~/.bash_profile` 或 `source ~/.bashrc` 来使配置生效。 这样应该可以解决“jps: command not found”的问题,并且让Shell脚本正常工作来检查每个节点的进程情况了。
  • Linux通讯Shell
    优质
    《Linux通讯录Shell脚本》是一段用于管理联系人的自动化脚本程序,利用Linux Shell编程实现添加、删除和查询联系人等功能。 Linux通讯录的Shell脚本是许多Linux课程作业中的常见需求。
  • 使Shell询进程运行
    优质
    本文介绍了如何利用Shell脚本来查询Linux系统中特定进程的运行时间,帮助用户轻松监控和管理后台任务。 在Linux系统管理中,Shell脚本是一个非常强大的工具,它允许我们自动化执行一系列命令和任务。有时我们需要监控或控制进程的运行状态,例如确保长时间运行的任务不会无限制地持续下去。 `ps` 命令是 Linux 中用于报告当前系统中进程状态的重要工具,提供了多种格式来展示进程的信息。在 `ps -p 4260 -o pid,start_time,etime,comm` 命令中,“start_time” 列显示了进程启动的时间,而“etime”列则表示自启动以来的总时间(以天-小时:分钟:秒格式),但在需要精确到秒时不太方便。 为了解决这个问题,我们可以编写一个 Shell 脚本来计算进程运行的确切时间。以下是一个示例脚本: ```bash #!/bin/bash function show_elapsed_time() { user_hz=$(getconf CLK_TCK) # 通常值是100在x86/x86_64系统上 pid=$1 jiffies=$(cat /proc/$pid/stat | cut -d -f22) sys_uptime=$(cat /proc/uptime | cut -d -f1) last_time=$(( ${sys_uptime%.*} * 1000000 + ${jiffies/user_hz})) echo 进程 $pid 运行了 $last_time 秒。 } if [ $# -ge 1 ]; then for pid in $@; do show_elapsed_time $pid done fi while read pid; do show_elapsed_time $pid; done ``` 这个脚本定义了一个名为 `show_elapsed_time` 的函数,该函数接收一个进程ID作为参数。它首先获取系统的时钟ticks(通常是100Hz),然后读取指定进程的 `/proc/$pid/stat` 文件中的第22个字段,这是自启动以来经历的系统时钟ticks数。接着从 `/proc/uptime` 获取系统的总运行时间,并通过计算得到进程的实际运行秒数。 在执行脚本时可以传入一个或多个进程ID,脚本将依次打印每个进程的运行时间;如果没有提供参数,则会从标准输入读取进程ID以方便与其他命令结合使用。这样我们可以更灵活地处理进程运行时间的计算,并设置超时机制来自动终止长时间未完成的任务。 了解 `/proc` 文件系统中的 `stat`, `$pid/stat`, 和 `uptime` 等文件,对于深入理解Linux内核和进程管理至关重要。这些实时更新的文件能提供系统的当前状态信息。利用Shell脚本结合 `/proc` 文件系统可以有效地监控与管理系统资源,确保合理使用并提高运维效率的同时预防潜在性能问题的发生。
  • Bash Shell入门总结
    优质
    Bash Shell脚本入门总结旨在为初学者提供一份全面的指南,涵盖基础语法、条件判断、循环结构及函数使用等关键概念,助你快速掌握Shell脚本编写技巧。 对于经常使用Shell命令的朋友来说,掌握基本的Shell脚本语法就可以开始编写自己的Shell脚本了。因此,在这份文档里,我主要介绍Shell语法,并在必要之处附上命令和语法的使用示例。“寓情于景、寓理于事”的方式可以加深对知识点的理解与记忆。此外,我还解释了一些容易让人感到困惑的通配符和正则表达式的用法,并进行了仔细考证。
  • 使 cat /etc/passwd Linux
    优质
    本教程介绍如何在Linux系统中通过读取/etc/passwd文件来查看用户信息,帮助用户了解基本的用户配置和权限管理。 使用 `cat /etc/passwd` 命令可以查看Linux用户信息;使用 `cat /etc/shadow` 命令需要root权限来查看用户的密码信息;通过执行 `cat /etc/sysconfig/network-scripts/ifcfg-ethn`(其中N代表网卡编号)命令,可以看到特定网卡的IP配置详情。另外,运行 `ifconfig` 命令可以获取本机的所有网络接口及其IP地址等信息。
  • Linux中实现自动重启并记数的Shell
    优质
    这段文字介绍了一个在Linux环境下编写的Shell脚本,该脚本能够自动重启服务器并在每次重启时更新重启计数器,便于监控系统的稳定性和故障排查。 Linux系统自动不停重启并计数的shell脚本可以实现对系统重启次数进行记录的功能。这样的脚本通常会利用系统的日志文件来追踪重启事件,并在每次启动时更新一个特定的文件或数据库条目以保存重启次数信息。编写此类脚本需要注意的是,确保它能够准确地检测到系统重新启动并正确递增计数器值。此外,在设计这种自动化功能时还需考虑安全性以及对系统性能的影响,避免因为脚本错误导致无限循环重启的问题发生。
  • 【运维】
    优质
    《每日信息系统巡查记录》是一份详尽的日志文档,旨在跟踪和维护企业的IT基础设施健康状态。它详细记载了系统运行状况、性能指标以及潜在的安全威胁等信息,为优化操作环境提供了数据支持。 针对日常巡检的信息系统进行记录,这是信息系统记录的模板。仅适用于信息系统的记录,不包括服务器、机柜等硬件设备的处理。