Shell脚本linux登录自动检查
.bashrc
用于设置用户的 Bash shell 环境,在每次打开一个新的终端窗口或启动一个新的 Bash 会话时被执行
代码
login_check.sh
#!/bin/bash
clear
LogFileName=polling.$(date +%F-%T)
EchoFormat=$(for (( i=0; i<30; i++ )); do echo -n "="; done)# 显示标题
show_header() {printf "${EchoFormat} %s ${EchoFormat}\n" "$1"
}# 系统信息
SystemInfo() {show_header "系统信息"printf "系统类型: %-10s\n" "$(uname -a | awk '{print $NF}')"printf "系统版本: %-10s\n" "$(cat /etc/redhat-release)"printf "内核信息: %-10s\n" "$(uname -r)"printf "主机名: %-10s\n" "$(uname -n)"printf "编码格式: %-10s\n" "${LANG}"printf "系统当前时间: %-10s %-10s\n" "$(date +%F)" "$(date +%T)"printf "系统运行负载: %-4s %-1s\n" "$(uptime | awk -F: '{print $5}' | awk -F, '{print $1}')" "%"printf "系统运行天数: %-10s\n" "$(uptime | awk '{print $3}')"printf "在线用户人数: %-3s\n" "$(w | tail -n +3 | wc -l)"printf "SELinux: %-10s\n" "$(grep 'SELINUX=[d|e|p]' /etc/selinux/config | awk -F= '{print $2}')"echo -e "最后一次修改时间: $(uptime -p)"echo -e "IP地址: $(hostname -I | cut -d' ' -f1)"echo -e "Cpu处理器: $(lscpu | grep 'Model name:' | sed 's/Model name:\s*//')"echo -e "内存空间: $(free -h | awk '/^Mem:/ { print $3 "/" $2 }')"echo -e "交换空间: $(free -h | awk '/^Swap:/ { print $3 "/" $2 }')"
}# CPU信息
CpuInfo() {show_header "CPU排名前十信息"top -b -n 1 | head -n 17 | tail -n 10
}# 内存信息
MemoryInfo() {show_header "内存信息"printf "总共内存: %-1s\n" "$(free -mh | awk 'NR==2 {print $2}')"printf "使用内存: %-1s\n" "$(free -mh | awk 'NR==2 {print $3}')"printf "剩余内存: %-1s\n" "$(free -mh | awk 'NR==2 {print $4}')"printf "内存使用占比: %-1s %-1s\n" "$(free | awk '/^Mem:/ {print $6/$2*100}' | cut -c1-5)" "%"
}# 磁盘使用量
Disk_Info() {show_header "各分区使用率"df -hecho
}# Swap信息
SwapInfo() {show_header "Swap信息"printf "Swap总大小: %-1s\n" "$(free -mh | awk 'NR==3 {print $2}')"printf "已用Swap: %-1s\n" "$(free -mh | awk 'NR==3 {print $3}')"printf "可用Swap: %-1s\n" "$(free -mh | awk 'NR==3 {print $4}')"
}# 网络信息
NetworkInfo() {show_header "网络信息"printf "IP地址: %-1s\n" "$(ip addr | grep inet | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1)"printf "网关: %-1s\n" "$(ip route show default | awk '{print $3}')"printf "DNS: %-1s\n" "$(grep 'nameserver' /etc/resolv.conf | awk '{print $2}')"if (ping -c2 -w2 www.baidu.com &>/dev/null); thenprintf "网络是否连通: %s\n" "是"elseprintf "网络是否连通: %s\n" "否"fi
}# Docker检查
DockerInfo() {show_header "docker运行情况"local running_containers=$(docker ps --format "{{.Names}}")local exited_containers=$(docker ps --format "{{.Names}}" | grep Exited)printf "当前正在运行的容器:\n %s\n" "$running_containers"printf "当前没有运行的容器:\n %s\n" "$exited_containers"
}# 主函数
main() {SystemInfoCpuInfoMemoryInfoDisk_InfoSwapInfoNetworkInfoDockerInfo
}# 执行主函数
main
登录自动执行
cp login_check.sh /root/.login_check.shchmod +x /root/.login_check.shecho "/root/.login_check.sh" >> /root/.bashrc
保存退出后重新登陆Linux即可

相关文章:
Shell脚本linux登录自动检查
.bashrc 用于设置用户的 Bash shell 环境,在每次打开一个新的终端窗口或启动一个新的 Bash 会话时被执行 代码 login_check.sh #!/bin/bash clear LogFileNamepolling.$(date %F-%T) EchoFormat$(for (( i0; i<30; i )); do echo -n ""; done)# 显示…...
Golang | Leetcode Golang题解之第450题删除二叉搜索树的节点
题目: 题解: func deleteNode(root *TreeNode, key int) *TreeNode {var cur, curParent *TreeNode root, nilfor cur ! nil && cur.Val ! key {curParent curif cur.Val > key {cur cur.Left} else {cur cur.Right}}if cur nil {retur…...
Linux 之 Linux应用编程概念、文件IO、标准IO
Linux应用编程概念、文件IO、标准IO 学习任务: 1、 学习Linux 应用开发概念,什么是系统调用,什么是库函数 2、 学习文件IO:包括 read、write、open、close、lseek 3、 深入文件IO:错误处理、exit 等 4、 学习标准IO&a…...
PDF处理技巧:Windows电脑如何选择合适的 PDF 编辑器
您可以阅读本文以了解用于在 PC 上编辑 PDF 的顶级免费软件,而无需花费任何费用即可轻松进行快速编辑、拆分、合并、注释、转换和共享您的 PDF。 PDF 或可移植文档文件是由 Adobe 创建的一种多功能文件格式。它可以帮助您轻松可靠地交换文档,无论相关方…...
【c++】初步了解类和对象2
1、类的作用域 类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。 如图,此时在类内声明了函数firstUniqChar(),在类外进行了函数体的具体定义。 但是却…...
Python库pandas之四
Python库pandas之四 输入/输出read_json函数应用实列 输入/输出 read_json 函数 词法:pandas.read_json(path_or_buf, *, orientNone, typ‘frame’, dtypeNone, convert_axesNone, convert_datesTrue, keep_default_datesTrue, precise_floatFalse, date_unitNo…...
网络攻防技术--第三次作业
文章目录 第三次作业一、通过搜索引擎搜索自己在因特网上的足迹,并确认是否存在隐私和敏感信息泄露问题。如果有信息泄露,提出解决方法。二、结合实例总结web搜索和挖掘的方法。三、网络扫描有哪几种类型?分别有什么作用?利用一种…...
带隙基准Bandgap电路学习(一)
一、原理图 Bandgap中的运放(折叠式Cascode)采用P输入对,是因为运放输入端接的PNP三极管发射极端的电位,电压小,为了确保输入对管能够饱和工作,故采用P输入对管。此外,P管作为输入管,…...
[前端][easyui]easyui select 默认值
function initRegion(key, val) {$(#Region).combobox({url: path /getTypeVaule.do?itemregion&key key "&value" val,editable: false, //不可编辑状态cache: false,valueField: TEMID,textField: TEMID,loadFilter: function (data) {data.unshift({…...
项目开发--大模型--个人问答知识库--chain控制
背景 1、langchain当中的chain prompt | llm | output_parser这个链能更长吗? 在 LangChain 中,链(chain)可以根据需要变得非常长,并且可以包含多种不同类型的组件。链的目的是将多个步骤串联起来,以便以…...
STM32—SPI通讯协议
前言 由于I2C开漏外加上拉电阻的电路结构,使得通信线高电平的驱动能力比较弱,这就会号致,通信线由候电平变到高电平的时候,这个上升沿耗时比较长,这会限制I2C的最大通信速度, 所以,I2C的标准模…...
Android 安装过程五 MSG_INSTALL消息的处理 安装
现在马上进入正式的安装流程。 从前面文章 Android 安装过程四 MSG_INSTALL消息的处理 安装之前的验证知道,在验证之后没有什么问题的情况下,会回调onVerificationComplete()方法,它位于PackageInstallerSession类中。 private void onVe…...
大数据开发--1.3 Linux的常用命令大全
目录 一. 终端命令格式 命令格式 说明: 二. 显示文件列表命令 -ls 作用 格式 ls常用选项 案例 三. 目录操作命令 -pwd 作用 格式 案例 四. 目录操作命令 -cd 作用 格式 案例 五. 目录操作命令 -mkdir 作用 格式 案…...
使用PuTTY连接到Amazon Linux实例
PuTTY 是一款免费的 SSH 客户端,广泛用于从 Windows 系统连接到 Linux 实例。如果你使用的是 Windows Server 2019 或更高版本,可以考虑使用内置的 OpenSSH 工具,但 PuTTY 依然是一个非常受欢迎的选择。 一、先决条件 在使用 PuTTY 连接到 …...
Nexus搭建maven私有仓库
内网访问,内网团队使用一个服务缓存节省外网宽带。 微服务开发中加速 Maven 项目构建,加快团队合作,提高工作效率 允许上传和下载私有库,并且不被外部访问,安全 稳定。 方便内部项目服务的依赖引用,而不需要…...
留存率的定义与SQL实现
1.什么是留存率 留存率是指在特定时间段内,仍然继续使用某项产品或服务的用户占用户总数的百分比。 通常,留存率会以日,周,或月为单位进行统计和分析。 2.SQL留存率常见问题 1.计算新用户登录的日期的次日留存率以及3日留存率 …...
Java的锁机制详解
在并发编程中,锁 是用于控制多个线程对共享资源进行访问的工具。Java提供了多种锁机制,从最基础的 synchronized 到高级的 ReentrantLock,这些锁帮助我们确保线程安全,并能有效避免数据竞争和死锁问题。 1. synchronized 关键字…...
用户登录与信息管理:实现小程序登录与用户信息存储
用户登录与信息管理:实现小程序登录与用户信息存储 在现代的移动应用中,用户登录与信息管理是构建个性化用户体验的基础。小程序作为轻量级的应用形式,在简化开发流程的同时,也需要我们妥善管理用户的登录状态与用户信息。本文将…...
Java如何调用构造函数和方法以及使用
调用构造函数的格式 构造函数在创建新对象时被调用。调用格式如下: ClassName objectName new ClassName(parameters); ClassName:你需要创建其实例的类的名称。 objectName:你将创建的对象的名称。 parameters:如果你使用的是…...
TFBoys谁最重
题目 使用go语言设计一个程序计算TFBoys谁最重,要求使用结构体表示TFBoys三个成员,设计函数计算三个重量的最大值。 程序 package main import ("fmt") type Person struct {Name stringWeight float64} func (p Person) GetWeigh…...
React Native测试配置终极指南:Jest与React Testing Library完整实战
React Native测试配置终极指南:Jest与React Testing Library完整实战 【免费下载链接】react-native-boilerplate A React Native template for building solid applications 🐙, using JavaScript 💛 or Typescript 💙 (you choo…...
小红书数据采集实战指南:3种高效方法解决内容分析难题
小红书数据采集实战指南:3种高效方法解决内容分析难题 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 小红书作为中国最大的生活方式分享平台,每天产…...
基于Simulink的滞环电压控制(Bang-Bang)Buck仿真
目录 手把手教你学Simulink ——基于Simulink的滞环电压控制(Bang-Bang)Buck仿真 一、问题背景 二、滞环控制原理 1. 控制思想 三、系统架构 四、Simulink 建模步骤 第一步:搭建 Buck 主电路 第二步:实现滞环比较器 第三步:死区时间插入(防直通) 第四步:驱动…...
开源轻量模型新星:Qwen1.5-0.5B-Chat部署趋势分析
开源轻量模型新星:Qwen1.5-0.5B-Chat部署趋势分析 1. 项目概述 Qwen1.5-0.5B-Chat是阿里通义千问开源系列中的轻量级智能对话模型,基于ModelScope(魔塔社区)生态构建。这个仅有5亿参数的模型在保持良好对话能力的同时࿰…...
Phi-4-mini-reasoning Chainlit用户体验优化:流式响应+打字机动画实现
Phi-4-mini-reasoning Chainlit用户体验优化:流式响应打字机动画实现 1. 项目背景与目标 Phi-4-mini-reasoning 是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员,它支持128K令牌的…...
用LingBot-Depth解决实际问题:如何修复不完整的深度传感器数据?
用LingBot-Depth解决实际问题:如何修复不完整的深度传感器数据? 1. 深度传感器数据修复的挑战 深度传感器在机器人导航、三维重建和增强现实等领域发挥着关键作用,但原始传感器数据往往存在各种问题: 数据缺失:由于…...
openclaude:模型接入 Code 工具链
作为一名长期关注人工智能工程化落地的开发者,我深知本地大模型在隐私保护和成本控制上的优势,但往往苦于缺乏像 Claude Code 那样强大的工具调用能力。很多时候,我们拥有强大的模型(如 DeepSeek、Ollama 本地部署)&am…...
SEO推广系统与其他推广渠道的对比
SEO推广系统与其他推广渠道的对比 在现代商业环境中,各种推广渠道层出不穷,其中SEO推广系统和其他传统或新兴的推广渠道各有优劣。本文将从问题分析、原因说明、解决方法、注意事项和实用建议五个方面,深入探讨SEO推广系统与其他推广渠道的对…...
大数据领域HBase的备份与恢复方案
大数据领域HBase的备份与恢复方案 关键词:HBase备份恢复、分布式存储、数据持久化、全量备份、增量备份、灾难恢复、快照机制 摘要:本文系统解析HBase分布式环境下的数据备份与恢复技术体系,涵盖核心存储原理、多维度备份策略(全量…...
LibEdificio嵌入式教学库:硬件映射驱动与楼宇灯光实验平台
1. 项目概述LibEdificio 是一款面向嵌入式教育平台的专用控制库,专为“Building Lights 教学系统”(楼宇灯光教学实验平台)设计。该系统并非通用工业楼宇自控设备,而是一套结构化、模块化、可编程的硬件教学套件,广泛应…...
