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使用详解
  • 自动化运维脚本集合
    • 摘要
    • 使用说明
      • 根据进程ID或名称查看进程详细信息
      • 备份指定目录
      • 查看CPU、磁盘、内存使用率
      • 关闭防火墙
      • 开启防火墙
      • 显示基础信息-详细
      • 根据进程id查看工作目录
      • 清除Linux系统占用缓存
      • 查看端口是否使用
      • 查看进程使用的端口
      • 查看端口所在进程
      • 查看目录下各目录占用空间以及最大文件或目录
      • 查看内存使用前十的进程
      • 查看CPU使用前十的进程
    • 脚本内容
    • 一键下载应用
      • 一键下载安装到环境变量
      • 使用方法
  • 模拟占用磁盘内存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
  • 用户登录时执行检查脚本
  • 一键配置Linux镜像源
  • RustScan端口扫描
  • 前置机、堡垒机、跳板机区别
  • Linux添加回收站功能
  • Linux系统详细信息监控-Grafana+Prometheus
  • 再见XShell:轻量又高性能的SSH工具AI加持快人一步
  • Unbuntu安装deb文件
  • Ubuntu远程连接时分辨率问题
  • Ubuntu中Clash报错
  • Linux可视化监控
  • Vim复制自动缩进问题处理
  • 无所不能的BusyBox:如何用它打造极小的Linux环境
  • 运维
Jast-zsh
2023-10-08
目录

自动化运维脚本集合

[toc]

在Linux系统管理中,拥有一个功能强大且易于使用的工具可以极大地简化日常操作任务。本文将介绍一个全面的Linux工具,该工具不仅提供详细的使用说明,还涵盖了查看进程信息、备份目录、系统资源监控、防火墙管理等多种功能。通过这篇文章,您将了解如何高效地使用这些功能来优化和维护您的Linux系统,从而提升您的工作效率和系统性能。

# 摘要

本文介绍了一款功能强大的Linux工具,提供详细的使用说明及多种实用功能,包括查看进程信息、备份目录、系统资源监控、防火墙管理等。通过此工具,用户可以高效管理和优化Linux系统,提升工作效率和系统性能。主要功能如下:

  • 根据进程ID或名称查看进程详细信息
  • 备份指定目录
  • 查看CPU、磁盘、内存使用率
  • 关闭防火墙
  • 开启防火墙
  • 显示基础信息-详细
  • 根据进程ID查看工作目录
  • 清除Linux系统占用缓存
  • 查看端口是否使用
  • 查看进程使用的端口
  • 查看端口所在进程
  • 查看目录下各目录占用空间及最大文件或目录
  • 查看内存使用前十的进程
  • 查看CPU使用前十的进程

脚本内容可一键下载并应用,为Linux系统管理提供了极大的便利。

文末有脚本全部源码和一键下载应用方法。

# 使用说明

# 根据进程ID或名称查看进程详细信息

sh stool.sh proc 进程名/id
1

结果

sh test.sh proc java
------------------------------------------------
进程PID:           3191
进程命令:        java -Xms200m -Xmx1500m -cp lib/*:xxx.jar com.web.Application
CPU占用率:         0.0%
内存占用率:      8.4%
进程所属用户:  root
进程当前状态:  Sl
进程当前状态说明:  处于睡眠状态(可中断) 多线程(使用 CLONE_THREAD, 类似 NPTL pthreads)
进程虚拟内存:  3985.34 MB
进程共享内存:  314.88 MB
进程运行持续时间:  7-18:55:37
进程开始运行时间: Mon Jul 29 12:47:19 2024
------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 备份指定目录

# 备份指定目录文件到指定目录,备份文件名称为:备份目录最后一层目录+"_"+日期.tar.gz
# 第一个参数:backdir 第二参数:备份文件保存目录 第三个参数:备份目录/文件
sh stool.sh backdir /root/ /home
1
2
3

# 查看CPU、磁盘、内存使用率

sh stool.sh baseinfo
1

返回结果

2023-04-03 13:08:44 CPU usage: 0.0, Memory usage: 9.39%, Disk usage: 19%
1

# 关闭防火墙

sh stool.sh stop-firewall
1

# 开启防火墙

sh stool.sh start-firewall
1

# 显示基础信息-详细

sh stool.sh info
1

结果

系统 CPU 数量(逻辑处理器数量):2
系统 CPU 数量(物理处理器数量):1
系统内存总容量:3736 MB
系统已使用内存量:1942 MB
系统可用内存量:1262 MB
系统磁盘总容量:87G GB
系统已使用磁盘空间:22G GB
系统可用磁盘空间:63G GB
系统 CPU 使用率:25%
1
2
3
4
5
6
7
8
9

# 根据进程id查看工作目录

sh stool.sh psdir 15008
1

结果

lrwxrwxrwx 1 root root 0 8月   6 08:05 /proc/15008/cwd -> /opt/test
1

# 清除Linux系统占用缓存

sh stool.sh drop-cache
1

# 查看端口是否使用

# 第一个参数脚本名称 ,第二个参数ip,第三个参数端口
sh scripte.sh ping-port
1
2

使用样例:

sh scripte.sh ping-port
> 端口 80 无法访问 127.0.0.1
1
2

# 查看进程使用的端口

sh scripte.sh processor-port 进程信息
1

使用样例:

sh 1.sh processor-port 15008
-------------------------------------------------
所有进程ID:14746 14749 15008
-------------------------------------------------
进程ID:14746
进程 15008 没有占用任何端口。
-------------------------------------------------
进程ID:14749
进程 15008 没有占用任何端口。
-------------------------------------------------
进程ID:15008
进程 15008 占用的端口号:1234
12345
16798
25333
50052
5678
-------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 查看端口所在进程

sh scripte.sh processor-port 5678
1

使用样例:

sh scripte.sh processor-port 5678
> 端口  对应的进程是 java,PID 是 15008。
1
2

# 查看目录下各目录占用空间以及最大文件或目录

 sh stool.sh duh /var/lib
1

使用样例:

# sh 1.sh duh /var/lib
28K     /var/lib/polkit-1
76K     /var/lib/systemd
692K    /var/lib/cloud
13M     /var/lib/yum
132M    /var/lib/rpm
25G     /var/lib
25G     /var/lib/clickhouse
占用存储空间最大的目录是:
25G     /var/lib/clickhouse
1
2
3
4
5
6
7
8
9
10

# 查看内存使用前十的进程

sh stool.sh top-mem
1

# 查看CPU使用前十的进程

sh stool.sh top-cpu
1

# 脚本内容

#!/bin/bash

# 备份指定目录文件到指定目录,备份文件名称为:备份目录最后一层目录+"_"+日期.tar.gz
# 第一个参数:backdir 第二参数:备份文件保存目录 第三个参数:备份目录/文件
backdir(){
    # 备份文件保存目录
    BACKUP_DIR=`echo $2`

    # 备份目录
    SOURCE_DIR=`echo $3`
    FILE_NAME=`basename "$SOURCE_DIR"`
    # 备份文件名称
    BACKUP_FILE=$FILE_NAME\_$(date +%Y%m%d).tar.gz
    #如果备份文件保存目录不存在则创建
    if [ ! -d "$BACKUP_DIR" ]; then
      mkdir -p $BACKUP_DIR
    fi
    # 创建备份文件
    tar -zcvPf $BACKUP_DIR/$BACKUP_FILE $SOURCE_DIR
}

# 内存,cpu,磁盘使用
baseinfo(){

    # CPU usage
    CPU_USAGE=$(top -b -n 1 | grep "^%Cpu" | awk '{print $2}')

    # Memory usage
    MEM_USAGE=$(free | awk 'NR==2{printf "%.2f%%", $3/$2*100}')

    # Disk usage
    DISK_USAGE=$(df -h / | awk 'NR==2{print $5}')

    # Write results to log file
    echo "$(date +"%Y-%m-%d %H:%M:%S") CPU usage: $CPU_USAGE, Memory usage: $MEM_USAGE, Disk usage: $DISK_USAGE" 
}

# 开启防火墙
startFirewall(){
  			# 获取 Linux 系统版本
        OS=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
      	# 根据系统版本执行相应的命令启动防火墙
        if [[ $OS == *"CentOS"* || $OS == *"Red Hat"* ]]; then
            systemctl start firewalld
            systemctl enable firewalld
            systemctl start iptables
            systemctl enable iptables
            systemctl status iptables
            systemctl status firewalld
            echo "Firewall has been started and enabled successfully."
        elif [[ $OS == *"Ubuntu"* || $OS == *"Debian"* ]]; then
            ufw enable
            echo "Firewall has been enabled successfully."
        else
            echo "Unsupported operating system."
            exit 1
        fi
}
#关闭防火墙
stopFirewall(){
        # 获取 Linux 系统版本
        OS=$(awk -F= '/^NAME/{print $2}' /etc/os-release)

        # 根据系统版本执行相应的命令关闭防火墙
        if [[ $OS == *"CentOS"* || $OS == *"Red Hat"* ]]; then
            systemctl stop firewalld
            systemctl disable firewalld
            systemctl stop iptables
            systemctl disable iptables
            systemctl status iptables
            systemctl status firewalld
            echo "Firewall has been stopped and disabled successfully."
        elif [[ $OS == *"Ubuntu"* || $OS == *"Debian"* ]]; then
            ufw disable
            echo "Firewall has been disabled successfully."
        else
            echo "Unsupported operating system."
            exit 1
        fi
}

# 查看进程信息
proc() {
    if [[ "$2" =~ ^[0-9]+$ ]]; then
        PIDS=($2)
    else
        PIDS=($(pgrep -x "$2"))
        if [ -z "$PIDS" ]; then
            echo "该进程名不存在!!"
            exit 1
        fi
    fi

    declare -A STAT_DESC=(
        ["R"]="正在运行"
        ["S"]="处于睡眠状态(可中断)"
        ["D"]="处于不可中断的睡眠状态(通常是IO)"
        ["T"]="已停止(被追踪或使用了 stop 信号)"
        ["Z"]="僵尸进程"
        ["X"]="进程已死"
        ["I"]="多线程任务正在调度中"
        ["W"]="进入内存交换(在内核中使用)"
        ["K"]="内核线程"
        ["P"]="正在等待分页"
        ["L"]="有些页被锁在内存中"
        ["s"]="进程是会话领导"
        ["l"]="多线程(使用 CLONE_THREAD, 类似 NPTL pthreads)"
        ["+"]="前台进程组"
        ["<"]="高优先级"
        ["N"]="低优先级"
        ["n"]="低优先级任务"
        ["u"]="用户态进程"
        ["v"]="包含虚拟内存"
    )

    for PID in "${PIDS[@]}"; do
        if ! ps -p $PID &> /dev/null ; then
            echo "该PID不存在!!"
            continue
        fi

        STAT=$(ps -p $PID -o stat=)
        STATE_DESC=""
        for (( i=0; i<${#STAT}; i++ )); do
            char="${STAT:$i:1}"
            desc=${STAT_DESC[$char]}
            if [[ -n "$desc" ]]; then
                STATE_DESC="$STATE_DESC $desc"
            fi
        done

        echo "------------------------------------------------"
        printf "%-20s %s\n" "进程PID:" "$PID"
        printf "%-20s %s\n" "进程命令:" "$(ps -p $PID -o cmd=)"
        printf "%-20s %s%%\n" "CPU占用率:" "$(ps -p $PID -o %cpu=)"
        printf "%-20s %s%%\n" "内存占用率:" "$(ps -p $PID -o %mem=)"
        printf "%-20s %s\n" "进程所属用户:" "$(ps -p $PID -o user=)"
        printf "%-20s %s\n" "进程当前状态:" "$STAT"
        printf "%-20s %s\n" "进程当前状态说明:" "$STATE_DESC"
        printf "%-20s %.2f MB\n" "进程虚拟内存:" "$(echo "$(ps -p $PID -o vsz=) / 1024" | bc -l)"
        printf "%-20s %.2f MB\n" "进程共享内存:" "$(echo "$(ps -p $PID -o rss=) / 1024" | bc -l)" 
        printf "%-20s %s\n" "进程运行持续时间:" "$(ps -p $PID -o etime=)"
        printf "%-20s %s\n" "进程开始运行时间:" "$(ps -p $PID -o lstart=)"
        echo "------------------------------------------------"
    done
}

# 查看进程pid,启动时间,持续执行时间
pstime(){
  ps -eo pid,lstart,etime,cmd | grep $2
}

# 根据进程ID查看进程工作目录
psdir(){
  ls -l /proc/$2/cwd 
}

# 释放缓存
dropCache(){
    sync
    echo 3 > /proc/sys/vm/drop_caches
}

# 第二个参数ip,第三个参数端口
pingPort(){
        # 定义IP地址和端口
        IP_ADDRESS=`echo $2`
        PORT=`echo $3`

        # 检查nc命令是否已经安装,如果未安装,则尝试安装
        if ! command -v nc &> /dev/null; then
            if command -v apt-get &> /dev/null; then
                sudo apt-get update && sudo apt-get -y install netcat
            elif command -v yum &> /dev/null; then
                sudo yum install -y nc
            else
                echo "无法自动安装nc命令,请手动安装后重试。"
                exit 1
            fi
        fi

        # 使用nc命令检查IP地址和端口是否可用
        if nc -z -w 2 $IP_ADDRESS $PORT; then
            echo "端口 $PORT 可以访问 $IP_ADDRESS"
        else
            echo "端口 $PORT 无法访问 $IP_ADDRESS"
        fi
}

# 查看进程使用的端口号
# 第二个参数输入需要查询的进程,可以为pid,也可以为进程名称
catProcessorPort(){
				echo "-------------------------------------------------"
        PROCESS_NAME=`echo $2`

        # 使用pidof命令查找进程ID
        PID=$(pidof $PROCESS_NAME)

        # 如果找不到进程ID,则使用ps命令查找
        if [ -z "$PID" ]; then
            PID=$(ps -ef | grep $PROCESS_NAME | grep -v grep | awk '{print $2}')
        fi
        echo 所有进程ID:$PID
        # 如果还是找不到进程ID,则输出错误信息并退出
        if [ -z "$PID" ]; then
            echo "找不到进程 $PROCESS_NAME。"
            exit 1
        fi
        
        for PID2 in $PID; do
        		echo "-------------------------------------------------"
            echo 进程ID:$PID2
            # 使用lsof命令查找进程占用的端口号
            PORTS=$(lsof -nP -p $PID2 | grep LISTEN | awk '{print $9}' | cut -d':' -f2 | sort -u)

            # 输出占用端口号
            if [ -n "$PORTS" ]; then
                echo "进程 $PROCESS_NAME 占用的端口号:$PORTS"
            else
                echo "进程 $PROCESS_NAME 没有占用任何端口。"
            fi
        done
        echo "-------------------------------------------------"
        
}

# 查看使用端口的进程pid
# 第二个参数为端口号
catPortProcessor(){
		catPortProcessorPort=`echo $2`
    # 使用 lsof 命令查询端口号对应的进程
    pid=$(sudo lsof -t -i:$catPortProcessorPort)

    # 如果找到了进程,打印进程名称和 PID
    if [ ! -z "$pid" ]; then
      process_name=$(ps -p $pid -o comm=)
      echo "端口 $port 对应的进程是 $process_name,PID 是 $pid。"
    else
      echo "端口 $port 没有被占用。"
    fi
}

# 查看哪个目录占用磁盘空间大
# 第二个参数为:需要查看的目录
duh(){
		directory=`echo $2`
	
    # 遍历目录并计算大小
    du -h -d 1 $directory | sort -h

    # 输出占用存储空间最大的目录
    echo "占用存储空间最大的目录或文件是:"
    du -sh $directory/* | sort -hr | head -n 1
}

# 使用内存最多的前十个进程
topMem(){
		echo "下面是 内存 占用率最高的前 10 个进程:"
		echos
		echo "进程ID 内存使用大小 启动命令"
		ps aux --sort=-%mem | head -n 11 | tail -n 10 | awk '{print $2,$6/1024"M",$11}'
		echos
}

# 使用CPU最多的前十个进程
topCpu(){
		echo "下面是 CPU 占用率最高的前 10 个进程:"
		echos
		echo "进程ID cpu占用率 启动命令"
    ps aux --sort=-%cpu | head -n 11 | tail -n 10 | awk '{print $2,$3,$11}'
    echos
}

# 查看有多少远程的 IP 在连接本机(不管是通过 ssh 还是 web 还是 ftp 都统计) 
# 使用 netstat ‐atn 可以查看本机所有连接的状态,‐a 查看所有,
# -t仅显示 tcp 连接的信息,‐n 数字格式显示
# Local Address(第四列是本机的 IP 和端口信息)
# Foreign Address(第五列是远程主机的 IP 和端口信息)
# 使用 awk 命令仅显示第 5 列数据,再显示第 1 列 IP 地址的信息
# sort 可以按数字大小排序,最后使用 uniq 将多余重复的删除,并统计重复的次数
connectIp(){
		echo "连接数量 来源IP端口"
		# 第一列是连接数量,第二列是连接ip:port
		netstat -atn  |  awk  '{print $5}'  | awk  '{print $1}' | sort -nr  |  uniq -c
}

# 查看网卡流量
iftop(){
   sudo yum -y install iftop
   echo "请手动输入命令查看流量:iftop -P"
}

# 显示系统基础信息
info(){
    # 获取系统 CPU 数量
    cpu_logical_count=$(nproc)
    cpu_physical_count=$(grep "physical id" /proc/cpuinfo | sort -u | wc -l)

    # 获取系统内存总容量、已使用内存量和可用内存量
    mem_total=$(grep MemTotal /proc/meminfo | awk '{print $2}')
    mem_used=$(free -m | awk 'NR==2{print $3}')
    mem_available=$(free -m | awk 'NR==2{print $4}')

    # 获取系统磁盘总容量、已使用磁盘空间和可用磁盘空间
    disk_total=$(df -BG --total | awk 'END{print $2}')
    disk_used=$(df -BG --total | awk 'END{print $3}')
    disk_available=$(df -BG --total | awk 'END{print $4}')

    # 获取系统 CPU 使用率
    cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}')

    # 将容量单位转换为 GB
    #disk_total=$(echo "scale=2;$disk_total/1024" | bc)
    #disk_used=$(echo "scale=2;$disk_used/1024" | bc)

    # 显示基础监控信息
    echo "系统 CPU 数量(逻辑处理器数量):$cpu_logical_count"
    echo "系统 CPU 数量(物理处理器数量):$cpu_physical_count"
    echo "系统内存总容量:$((mem_total / 1024)) MB"
    echo "系统已使用内存量:$mem_used MB"
    echo "系统可用内存量:$mem_available MB"
    echo "系统磁盘总容量:$disk_total GB"
    echo "系统已使用磁盘空间:$disk_used GB"
    echo "系统可用磁盘空间:$disk_available GB"
    echo "系统 CPU 使用率:$cpu_usage"
}

echos(){
	echo "-------------------------------------------------"
}

case "$1" in
				'proc')
          proc $*
                ;;
  			'backdir')
          backdir $*
                ;;
        'baseinfo')
          baseinfo
                ;;
        'stop-firewall')
					stopFirewall
                ;;
        'start-firewall')
          startFirewall
                ;;
        'pstime')
          pstime $*
                ;;
        'psdir')
        psdir $*
        ;;
         'drop-cache')
        dropCache
        ;;
         'ping-port')
        pingPort $*
        ;;
         'processor-port')
        catProcessorPort $*
        ;;
         'port-processor')
        catPortProcessor $*
        ;;
         'duh')
        duh $*
        ;;
          'top-mem')
        topMem 
        ;;
          'top-cpu')
        topCpu 
        ;;
          'connect-ip')
        connectIp
        ;;
         'iftop')
        iftop
        ;;
         'info')
        info
        ;;
        *)
          echo -e "需要传入指定参数,可用参数:\n\tproc(查看进程信息):\t\t第一个参数:proc 第二参数:进程id或者进程名称\n\tbackdir(备份目录 ):\t\t第一个参数:backdir 第二参数:备份文件保存目录 第三个参数:备份目录/文件\n\tbaseinfo(系统基础信息):\t\t查看CPU、磁盘、内存使用率\n\tstop-firewall(关闭防火墙):\t\t关闭防火墙\n\tstart-firewall(开启防火墙):\t\t开启防火墙\n\tpstime(查看进程pid,启动时间,持续执行时间):\t\t第一个参数:pstime,第二个参数:进程名/进程id\n\tpsdir(查看进程工作目录):\t\t第一个参数:psdir,第二个参数:进程id\n\tdrop-cache(清除Linux系统占用缓存):\t\t清除Linux系统占用缓存\n\tping-port(查看端口是否使用):\t\t第一个参数:ping-port,第二个参数:ip,第三个参数:端口\n\tprocessor-port(查看进程使用端口):\t\t第一个参数:processor-port,第二个参数:输入需要查询的进程,可以为pid,也可以为进程名称\n\tport-processor(查看端口被哪个进程使用):\t\t第一个参数:port-processor,第二个参数:端口\n\tduh(t查看目录下各目录占用空间以及最大文件或目录):\t\t第一个参数:duh,第二个参数:需要统计的目录\n\ttop-mem(查看内存使用前十的进程):\t\\n\ttop-cpu(查看CPU使用前十的进程):\t\t查看CPU使用前十的进程\n\tconnect-ip(查看连接当前服务器的所有IP来源):\t\t第一个参数 connect-ip"
                exit 1
esac
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387

# 一键下载应用

stool 即 script tool 的缩写

# 一键下载安装到环境变量

sudo curl -L http://linux.hadoop.wiki/stool.sh -o /usr/bin/stool && sudo chmod +x /usr/bin/stool
1

# 使用方法

stool info
1
上次更新: 2024/08/06, 21:00:03
Shell使用详解
模拟占用磁盘内存CPU

← Shell使用详解 模拟占用磁盘内存CPU→

最近更新
01
Linux可视化监控
02-26
02
Maven私服搭建
02-26
03
当ElasticSearch时间字段设置多个格式到底是用的哪个?
01-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式