CPU 内存检查小脚本
#!/bin/bash
function echo_red () {
local what=$*
echo -e "\e[1;31m${what}\e[0m"
}
function echo_green () {
local what=$*
echo -e "\e[1;32m${what}\e[0m"
}
cpu_used=`vmstat | awk 'NR==3{print (100-$(NF-2))}'`
cpu_average=`uptime | awk '{print $(NF-2),$(NF-1),$NF}'`
mem_used=`free -h |awk 'NR==2{print int(100-($NF/$2*100))}'`
echo "CPU利用率: $cpu_used%"
echo "CPU负载: $cpu_average"
echo "内存利用率: $mem_used%"
echo "==========检查结果=========="
if [ $cpu_used -ge 60 ]
then
echo_red "cpu利用率过大于60%,请检查."
elif [ $mem_used -ge 80 ]
then
echo_red "内存利用率过大于80%,请检查."
else
echo_green "CPU和内存使用率正常."
fi
#!/bin/bash
#!/usr/bin/env bash
# This script reproduces what the kubelet does
# to calculate memory.available relative to root cgroup.
# current memory usage
memory_capacity_in_kb=$(cat /proc/meminfo | grep MemTotal | awk '{print $2}')
memory_capacity_in_bytes=$((memory_capacity_in_kb * 1024))
memory_usage_in_bytes=$(cat /sys/fs/cgroup/memory/memory.usage_in_bytes)
memory_total_inactive_file=$(cat /sys/fs/cgroup/memory/memory.stat | grep total_inactive_file | awk '{print $2}')
memory_working_set=${memory_usage_in_bytes}
if [ "$memory_working_set" -lt "$memory_total_inactive_file" ];
then
memory_working_set=0
else
memory_working_set=$((memory_usage_in_bytes - memory_total_inactive_file))
fi
memory_available_in_bytes=$((memory_capacity_in_bytes - memory_working_set))
memory_available_in_kb=$((memory_available_in_bytes / 1024))
memory_available_in_mb=$((memory_available_in_kb / 1024))
echo "memory.capacity_in_bytes $memory_capacity_in_bytes"
echo "memory.usage_in_bytes $memory_usage_in_bytes"
echo "memory.total_inactive_file $memory_total_inactive_file"
echo "memory.working_set $memory_working_set"
echo "memory.available_in_bytes $memory_available_in_bytes"
echo "memory.available_in_kb $memory_available_in_kb"
echo "memory.available_in_mb $memory_available_in_mb"
patch
#!/bin/bash
# 使用 kubectl 获取所有命名空间中的暴露的服务及其命名空间
kubectl get expose -A | while read NAMESPACE NAME AGE; do
# 忽略标题行
if [[ $NAMESPACE == "NAMESPACE" ]]; then continue; fi
# 打印当前处理的服务信息
#echo "Patching service $NAME in namespace $NAMESPACE"
# 使用 kubectl patch 为服务添加 finalizers
kubectl patch expose $NAME -n $NAMESPACE -p '{"metadata":{"finalizers":["finalizers.jdos.io/expose"]}}' --type="merge"
done
打印主机信息
#!/usr/bin/env bash
#!/bin/bash
ip=`ifconfig eth0 | awk '/inet /{print $2}'`
echo "本地IP地址是:"$ip
cpu=`uptime | awk '{print $NF}'`
#awk中NF为当前行的列数,$NF是最后一列
echo "本机CPU最近15分钟的负载是:"$cpu
net_in=`ifconfig eth0 | awk '/RX p/{print $5}'`
echo "入站网卡流量为:"$net_in
net_out=`ifconfig eth0 | awk '/TX p/{print $5}'`
echo "出站网卡流量为:"$net_out
mem=`free | awk '/Mem/{print $4}'`
echo "内存剩余容量为:"$mem
disk=`df | awk '/\/$/{print $4}'`
echo "根分区剩余容量为:"$disk
user=`cat /etc/passwd |wc -l`
echo "本地账户数量为:"$user
login=`who | wc -l`
echo "当前登陆计算机的账户数量为:"$login
process=`ps aux | wc -l`
echo "当前计算机启动的进程数量为:"$process
soft=`rpm -qa | wc -l`
echo "当前计算机已安装的软件数量为:"$soft
top 是一个非常强大的 Linux 命令行工具,用于实时显示系统中进程的动态信息。它可以显示系统的整体运行状态,包括 CPU、内存使用情况,以及各个进程的详细信息。下面是 top 命令的详细解释,包括其主要功能、使用方法和输出解释。
基本用法
启动 top:直接在终端输入 top 并回车即可启动。
退出 top:在 top 界面中按 q 键可以退出。
top 界面解释
top 的输出界面分为两个主要部分:上半部分显示系统的整体状态,下半部分列出当前运行的进程。
系统整体状态
第一行:显示当前时间、系统运行时间、登录用户数、平均负载(1分钟、5分钟、15分钟的平均负载)。
第二行:显示进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵尸进程数。
第三行:显示 CPU 使用情况,包括用户态、系统态、空闲、等待 I/O、硬中断、软中断、偷取时间(虚拟机管理程序为其他操作系统运行时使用的时间)和客体时间(虚拟机管理程序运行虚拟 CPU 的时间)。
第四行:显示物理内存使用情况,包括总内存、已用内存、空闲内存和缓冲/缓存使用的内存。
第五行:显示交换分区的使用情况,包括总交换空间、已用交换空间、空闲交换空间和缓存的交换空间。
进程列表
PID:进程的进程号。
USER:进程所有者的用户名。
PR:进程的优先级。
NI:进程的 nice 值,表示进程的调度优先级。
VIRT:进程使用的虚拟内存总量。
RES:进程使用的物理内存(驻留集大小)。
SHR:进程使用的共享内存大小。
S:进程的状态(如 R 运行中,S 睡眠,D 不可中断睡眠等)。
%CPU:进程使用的 CPU 百分比。
%MEM:进程使用的内存百分比。
TIME+:进程使用的 CPU 时间总量。
COMMAND:启动进程的命令行。
交互命令
在 top 界面中,你可以使用一些交互命令来改变显示的内容或排序方式:
按 P:根据 CPU 使用率排序。
按 M:根据内存使用率排序。
按 N:根据 PID 排序。
按 k:杀死一个进程(需要输入进程的 PID)。
按 r:重新调整一个进程的优先级(需要输入进程的 PID 和新的 nice 值)。
按 f 或 o**:选择要显示的字段或改变字段的顺序。
按 q:退出 top。
高级用法
定制显示:通过 top 的 -b 选项可以以批处理模式运行 top,适合于将输出重定向到文件或通过管道传输给其他命令。
指定刷新间隔:使用 -d 选项可以设置 top 界面刷新的时间间隔。
指定显示的进程:使用 -p 选项可以指定 top 只显示特定 PID 的进程。
top 是一个非常强大的工具,通过熟练使用它,可以有效地监控和管理 Linux 系统的性能。
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。