Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • Linux网站汇总
  • Shell使用详解
  • 自动化运维脚本集合
  • 模拟占用磁盘内存CPU
  • Linux释放缓存
  • Linux监控进程磁盘邮件预警
  • 《Nginx教程》笔记
  • Linxu服务器文件双向同步-rsync+sersync
  • Linux文件清空的几种方法
  • Linux日志自动清理方案
  • Linux执行脚本加密
  • Linux安装包制作
  • Crontab详解
  • Linux上传下载百度网盘文件
  • 内网穿透
  • 内网穿透-无需公网服务器
  • 一文搞定Jenkins自动化部署程序
  • Linux配置代理请求
  • Linux监控之夜莺
  • Proxmox安装
  • Proxmox创建CentOS虚拟机
  • Proxmox创建Windows虚拟机
  • Debian系统安装OpenVPN
  • Docker快速部署OpenVPN
  • 用户登录时执行检查脚本
    • 引言
    • 脚本的核心功能
    • 步骤一:编写检查系统指标的脚本
      • 脚本解析
    • 步骤二:配置脚本在登录时自动执行
      • 方法一:将脚本添加到/etc/profile.d目录
      • 方法二:将脚本添加到用户的.bashrc文件
    • 效果展示
    • 结论
  • 一键配置Linux镜像源
  • RustScan端口扫描
  • 前置机、堡垒机、跳板机区别
  • Linux添加回收站功能
  • Linux系统详细信息监控-Grafana+Prometheus
  • 再见XShell:轻量又高性能的SSH工具AI加持快人一步
  • Unbuntu安装deb文件
  • Ubuntu远程连接时分辨率问题
  • Ubuntu中Clash报错
  • Linux可视化监控
  • Vim复制自动缩进问题处理
  • 无所不能的BusyBox:如何用它打造极小的Linux环境
  • 运维
Jast-zsh
2024-08-17
目录

用户登录时执行检查脚本

# Linux登录后自动健康检查:一键掌握系统状态

# 引言

当我们登录到某些服务器时,通常会看到类似于阿里云服务器的欢迎提示:

Welcome to Alibaba Cloud Elastic Compute Service!
[root@2c2g ~]# 
1
2

我们可以通过定制登录时的提示信息,在用户登录服务器后,自动展示一些常用的系统健康检查指标。这对于系统运维和监控来说,是一个非常有用的功能。在这篇博客中,我们将探讨如何编写一个简单的Bash脚本,以在用户登录Linux系统后自动检查一些关键的系统指标,并展示这些信息。

# 脚本的核心功能

我们将实现一个Bash脚本,该脚本在用户登录后自动执行,并检查以下几个关键系统指标:

  1. CPU使用率
  2. 内存使用情况
  3. 磁盘空间使用情况
  4. 当前登录用户
  5. 系统运行时间(uptime)
  6. 网络状态

# 步骤一:编写检查系统指标的脚本

首先,创建一个Bash脚本文件,例如 check_system_status.sh。在脚本中,我们将使用一些常用的Linux命令来获取系统指标。

#!/bin/bash

echo "-------- System Health Check --------"
echo ""

# CPU使用率
echo -n "CPU Usage: "
mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12"%"}'

# 内存使用情况
free -h | awk 'NR==2{printf "Memory Usage: %s/%s (%.2f%%)\n", $3,$2,$3*100/$2 }'

# 磁盘空间使用情况
df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'

# 当前登录用户
echo "Logged In Users:"
who
echo ""

# 系统运行时间
echo "System Uptime:"
uptime -p
echo ""

# 网络状态
echo "Network Status:"
ifconfig | grep "inet " | awk '{print $2}'
echo ""

echo "-------------------------------------"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# 脚本解析

  • CPU使用率:使用 mpstat 命令获取CPU的空闲百分比,通过计算得到CPU的使用率。
  • 内存使用情况:使用 free -h 命令,输出当前内存的使用量和总量,并计算使用率。
  • 磁盘空间使用情况:使用 df -h 命令获取根目录的磁盘使用情况。
  • 当前登录用户:使用 who 命令列出当前所有登录用户。
  • 系统运行时间:使用 uptime -p 命令获取系统的运行时间。
  • 网络状态:使用 ifconfig 和 grep 获取所有网络接口的IP地址。

# 步骤二:配置脚本在登录时自动执行

为了让脚本在每次用户登录后自动运行,我们可以将其添加到用户的 .bash_profile 或 .bashrc 文件中,也可以将脚本直接放入/etc/profile.d目录下。

# 方法一:将脚本添加到/etc/profile.d目录

将脚本保存为 /etc/profile.d/check_system_status.sh,并赋予其可执行权限:

sudo chmod +x /etc/profile.d/check_system_status.sh
1

提示:在 /etc/profile.d 目录下的脚本,会在每个用户登录后自动执行,这适用于希望所有用户都能看到该提示信息的情况。

# 方法二:将脚本添加到用户的.bashrc文件

如果您希望仅在某个特定用户登录时执行该脚本,可以将以下内容添加到该用户的 .bashrc 文件中:

# 在~/.bashrc末尾添加以下行
if [ -f /path/to/check_system_status.sh ]; then
    /path/to/check_system_status.sh
fi
1
2
3
4

每次用户登录时,系统会自动运行这个脚本并输出系统指标。

# 效果展示

当用户登录系统时,将会看到如下输出:

-------- System Health Check --------

CPU Usage: 4.96%
Memory Usage: 1.1G/1.7G (64.71%)
Disk Usage: 11/40GB (27%)
Logged In Users:
root     pts/0        Aug 17 08:14 (116.3.202.212)
root     pts/1        Aug 17 08:17 (116.3.202.212)
root     pts/2        Aug 17 08:23 (116.3.202.212)

System Uptime:
up 1 week, 3 days, 22 hours, 36 minutes

Network Status:
172.25.0.1
172.17.0.1
172.29.117.97
127.0.0.1

-------------------------------------
[root@2c2g ~]# 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 结论

通过这个简单的脚本,您可以在每次登录Linux系统后自动检查一些关键的系统指标。这不仅有助于您及时发现系统的潜在问题,还能提高日常运维的效率。您可以根据需要进一步扩展脚本,比如添加更多的检查项,或者将检查结果保存到日志文件中以便日后分析。

上次更新: 2024/08/19, 21:00:02
Docker快速部署OpenVPN
一键配置Linux镜像源

← Docker快速部署OpenVPN 一键配置Linux镜像源→

最近更新
01
TODO-Clickhouse-Explain查看执行计划
07-02
02
Ambari自定义服务开发-metainfo详细介绍
07-01
03
IoTDB服务安装教程-单机版
07-01
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式