【瞎折腾日常】linux登录自动检查脚本

:2024年06月13日 零氪的云原生
分享到:

一、自动检查脚本每次登录linux都想看一下系统的一些信息以及cpu和内存,但是不想手敲。整理了一份登录检查清单脚本,涵盖了系统的基础信息、内存、cpu、网络、docker等等的信息。只需要在/etc/profile....

一、自动检查脚本

  1. 每次登录linux都想看一下系统的一些信息以及cpu和内存,但是不想手敲。整理了一份登录检查清单脚本,涵盖了系统的基础信息、内存、cpu、网络、docker等等的信息。

  2. 只需要在/etc/profile.d/创建这个脚本,粘贴下面的脚本内容;

  3. vim /etc/profile.d/autosearchinfo.sh

  4. 然后赋予脚本的执行权限即可。每次登录就可以自动检查信息了。

  5. chmod +x /etc/profile.d/autosearchinfo.sh

  6. ps:内存使用率是使用bc命令计算的,bc命令先装。


二、脚本测试环境

  1. 1.测试环境信息

  2. A.项目映射在华为云centos8.2,外网地址为124.71.67.131,实际搭建在我的minipc,通过内网穿透映射到华为云进行访问

  3. Linux hcss-ecs-031b4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

  4. B.docker版本为26.1.3docker-compose版本为26.1.3

  5. 注意:本次实践部署环境为个人的测试环境,若是生产环境请谨慎部署;对应开启了容器的端口,在linux下和防火墙下需开放对应端口。

  6. 2.本次项目实施过程

  7. 在/etc/profile.d/路径下创建autosearchinfo.sh脚本,赋予执行权限。

  8. 由于我这边是一个云服务器,一个是内网穿透的服务器,我这边两边都增加了对应的脚本。


三、脚本内容

  1. #!/bin/bash

  2. clear

  3. LogFileName=polling.$(date +%F-%T)

  4. EchoFormat=$(for(( i=0;i<30;i++));do echo -n "=";done)

  5. # 系统信息

  6. SystemInfo(){

  7. printf "${EchoFormat} 系统信息 ${EchoFormat}\n"

  8. printf "系统类型: %-10s\n" $(uname -a| awk '{print $NF}')

  9.    printf "系统版本: %-10s\n""$(cat /etc/redhat-release)"

  10. printf "内核信息: %-10s\n" $(uname -r)

  11.    printf "主机名: %-10s\n" $(uname -n)

  12. printf "编码格式: %-10s\n" ${LANG}

  13.    printf "系统当前时间: %-10s %-10s\n" $(date +%F) $(date +%T)

  14.    printf "系统运行负载: %-4s %-1s\n" $(uptime | awk -F:'{print $5 }'|awk -F,'{print $1,"%"}')

  15.    printf "系统运行天数: %-10s\n" $(uptime |awk '{print $3}')

  16.    printf "在线用户人数: %-3s\n" $(w|tail -n +3|wc -l)

  17. printf "SELinux: %-10s\n" $(grep "SELINUX=[d|e|p]"/etc/selinux/config |awk -F='{print $2}')

  18.    echo -e "最后一次修改时间: $(uptime -p)"

  19. echo -e "IP地址: $(hostname -I | cut -d' ' -f1)"

  20.    echo -e "Cpu处理器: $(lscpu | grep "Model name:" | sed 's/Model name:\s*//')"

  21. echo -e "内存空间: $(free -h | awk '/^Mem:/ { print $3 "/" $2 }')"

  22.    echo -e "交换空间: $(free -h | awk '/^Swap:/ { print $3 "/" $2 }')"

  23. }

  24. # CPU信息

  25. CpuInfo(){

  26. MemonyId=$(top -b -n1|awk 'NR==3'|awk -F,'{print $4}'| cut -c 1-5)

  27. MemonyUse=$(echo "100-${MemonyId}"|bc)

  28.    printf "${EchoFormat} CPU信息 ${EchoFormat}\n"

  29.    printf "逻辑CPU核数: %-3s\n" $(grep "processor"/proc/cpuinfo|sort -u|wc -l)

  30. printf "物理CPU核数: %-3s\n" $(grep "physical id"/proc/cpuinfo |sort -u|wc -l)

  31.    printf "CPU架构: %-3s\n" $(uname -m)

  32. printf "CPU设置型号: %-3s\n""$(grep "model name" /proc/cpuinfo |awk -F: '{print $2}'|sort -u|cut -c 2-50)"

  33.    echo -e "CPU 1分钟负载: `awk  '{printf "%15s",$1}' /proc/loadavg`"

  34.    echo -e "CPU 5分钟负载: `awk  '{printf "%15s",$2}' /proc/loadavg`"

  35.    echo -e "CPU10分钟负载: `awk  '{printf "%15s",$3}' /proc/loadavg`"

  36.    printf "使用CPU占比: %-1s %-1s\n" ${MemonyUse}%

  37. printf "空闲CPU占比: %-1s %-1s\n" ${MemonyId}%

  38. printf "占用CPU Top10信息:\n\n"

  39. ps -eo user,pid,pcpu,pmem,args --sort=-pcpu  |head -n 10

  40. }

  41. # Memory信息

  42. MemoryInfo(){

  43. printf "${EchoFormat} 内存信息 ${EchoFormat}\n"

  44. printf "总共内存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $2}')

  45.    printf "使用内存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $3}')

  46.    printf "剩余内存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $4}')

  47.    printf "内存使用占比: %-1s %-1s\n" $(free | grep -i mem |awk '{print $6/$2*100}'|cut -c1-5)%

  48. printf "占用内存排名前10的soft:\n\n"

  49. ps -eo user,pid,pcpu,pmem,args --sort=-pmem  |head -n 10

  50. }

  51. # 磁盘使用量排序:

  52. Disk_Info(){

  53. printf "${EchoFormat} 各分区使用率 ${EchoFormat}\n"

  54. df -h

  55. echo

  56. }

  57. # Swap信息

  58. SwapInfo(){

  59. printf "${EchoFormat} Swap信息 ${EchoFormat}\n"

  60. printf "Swap总大小: %-1s\n" $(free -mh|awk "NR==3"|awk '{print $2}')

  61.    printf "已用Swap: %-1s\n" $(free -mh|awk "NR==3"|awk '{print $3}')

  62.    printf "可用Swap: %-1s\n" $(free -mh|awk "NR==3"|awk '{print $4}')

  63. }

  64. # 网络信息

  65. NetworkInfo(){

  66. printf "${EchoFormat} 网络信息 ${EchoFormat}\n"

  67. printf "IP地址: %-1s %-1s %-1s %-1s\n" $(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:")

  68.    printf "网关: %-1s %-1s %-1s %-1s\n" $(ifconfig -a|grep "netmask"|grep -v 127.0.0.1|awk '{print $4}')

  69.    printf "DNS: %-1s %-1s %-1s %-1s %-1s\n" $(grep "nameserver"/etc/resolv.conf | awk '{print $2}')

  70. if(ping -c2 -w2 www.baidu.com &>/dev/null);then

  71.    printf "网络是否连通: %s\n"

  72. else

  73.    printf "网络是否连通: %s\n"

  74. fi

  75. }

  76. # docker检查

  77. DockerInfo(){

  78.    printf "${EchoFormat} docker运行情况 ${EchoFormat}\n"

  79.    printf "当前正在运行的容器:\n $(docker ps --format "{{.Names}}")\n"

  80.        printf "当前没有运行的容器:\n $(docker ps --format "{{.Names}}"|grep Exited)\n"

  81. }

  82. #直接登录后打印

  83. SystemInfo

  84. CpuInfo

  85. MemoryInfo

  86. Disk_Info

  87. SwapInfo

  88. NetworkInfo

  89. #登录后进入查看模式

  90. # All(){

  91. # SystemInfo

  92. # CpuInfo

  93. # MemoryInfo

  94. # Disk_Info

  95. # SwapInfo

  96. # NetworkInfo

  97. # }

  98. # All >${LogFileName};less ${LogFileName}

640.jpg

640(1).jpg

[我要纠错]
[编辑:宋聪乔 &发表于江苏]
关键词: 自动 检查 脚本 每次 登录

来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

点个赞
0
踩一脚
0

您在阅读:【瞎折腾日常】linux登录自动检查脚本

Copyright©2013-2025  JSedu114 All Rights Reserved. 江苏教育信息综合发布查询平台保留所有权利

苏公网安备32010402000125 苏ICP备14051488号-3技术支持:南京博盛蓝睿网络科技有限公司

南京思必达教育科技有限公司版权所有   百度统计

最热文章
最新文章
  • 阿里云上云钜惠,云产品享最低成本,有需要联系,
  • 卡尔蔡司镜片优惠店,镜片价格低
  • 苹果原装手机壳