IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    推荐值得收藏 34 个命令总结

    Teacher Du发表于 2024-11-01 03:51:26
    love 0

    例行维护、问题排查等是运维工程师的日常工作,杜老师收集了 30 个常用命令,推荐给会使用到的小伙伴们,如果您有更多的好用命令欢迎分享给我们!

    删除文件

    1
    find -type f -size 0 -exec rm -rf {} \;

    注意:删除 0 字节的文件。

    查看进程

    按内存使用率从大到小排列:

    1
    ps -e -o "%C : %p : %z : %a" | sort -k5 -nr

    按 CPU 从大到小排列:

    1
    ps -e -o "%C : %p : %z : %a" | sort -nr

    输出信息

    1
    grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F 'http:' '{print "http:"$2;}'

    注意:打印 cache 里的 URL。

    查看连接状态

    1
    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

    注意:查看 http 的并发请求数及其 TCP 连接状态。

    替换

    1
    sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config 

    注意:sed 在这个文里 Root 的一行,匹配 Root 行,将 no 替换成 yes。

    杀掉进程

    1
    ps aux | grep mysql | grep -v grep | awk '{print $2}' | xargs kill -9

    注意:杀掉 MySQL 的进程。

    显示服务

    1
    ls /etc/rc3.d/S* | cut -c 15-

    注意:显示运行 3 级别开启的服务。

    显示多个信息

    1
    2
    3
    4
    5
    cat << EOF
    +-------------------------------------------+
    | === Welcome to dusays.com === |
    +-------------------------------------------+
    EOF

    注意:用 EOF 在编写 Shell 显示多个信息。

    for 的巧用

    1
    2
    3
    4
    5
    cd /usr/local/mysql/bin
    for i in *
    do
    ln /usr/local/mysql/bin/$i /usr/bin/$i
    done

    注意:给 MySQL 建软链接。

    取 IP 地址

    1
    2
    ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | cut -c 6-

    注意:或 ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'。

    内存大小

    1
    free -m | grep "Mem" | awk '{print $2}'

    注意:截取内存大小数据。

    查看端口

    1
    netstat -ant | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort

    注意:查看 80 端口的连接信息。

    统计文件大小

    1
    find / -name *.jpg -exec wc -c {} \; | awk '{print $1}' | awk '{a+=$1} END {print a}'

    注意:统计服务器下面所有 jpg 文件的大小。

    CPU 的负载

    检查前三个输出值是否超过系统逻辑 CPU 的 4 倍:

    1
    cat /proc/loadavg

    检查 %idle 值是否过低:

    1
    mpstat 1 1

    内存空间

    1
    free

    注意:检查 free 值是否过低,也可用 cat /proc/meminfo。

    交换空间

    1
    vmstat 1 5

    注意:观察 si 和 so 值是否较大。

    磁盘空间

    1
    df -h

    注意:检查是否有分区使用率过高,如发现某分区空间接近用尽,可进入该分区的挂载点,用 du -cks * | sort -rn | head -n 10 命令找出占用空间最多的文件或目录。

    磁盘负载

    1
    iostat -x 1 2

    注意:检查 I/O 使用率是否过高。

    网络负载

    1
    sar -n DEV

    注意:检查网络流量是否过高。

    网络错误

    1
    netstat -i

    注意:检查是否出现网络错误,也可用命令 cat /proc/net/dev。

    网络连接数目

    1
    netstat -an | grep -E "^(tcp)" | cut -c 68- | sort | uniq -c | sort -n

    注意:查询网络连接数目。

    进程总数

    1
    ps aux | wc -l

    注意:检查进程个数是否正常。

    可运行的进程数目

    1
    vmwtat 1 5

    注意:列出的是可运行进程的数目,检查是否超过系统逻辑 CPU 的 4 倍。

    进程

    1
    top -id 1

    注意:观察是否有异常的进程出现。

    用户

    1
    who | wc -l

    注意:检查登录用户是否过多「比如超过 50 个」也可用命令 uptime。

    系统日志

    检查是否有异常的错误记录:

    1
    cat /var/log/rflogview/*errors

    搜寻一些异常的关键字:

    1
    2
    grep -i error /var/log/messages
    grep -i fail /var/log/messages

    核心日志

    1
    dmesg

    注意:检查是否有异常的错误记录。

    系统时间

    1
    date

    注意:检查系统时间是否正确。

    打开文件数目

    1
    lsof | wc -l

    注意:检查打开文件总数是否过多。

    杀掉进程

    1
    lsof -i :80 | grep -v ID | awk '{print "kill -9",$2}' | sh

    注意:杀掉 80 端口相关的进程。

    清除进程

    1
    ps -eal | awk '{if ($2 == "Z") {print $4}}' | kill -9

    注意:清除僵尸进程。

    分析数据

    1
    tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts

    注意:用 tcpdump 抓包,防止 80 端口被人攻击时可以分析数据。

    检查 IP 重复数

    1
    less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +0

    注意:检查 IP 的重复数并从小到大排序。

    查看活动进程

    1
    netstat -anp | grep php-cgi | grep ^tcp | wc -l

    注意:查看有多少个活动的 php-cgi 进程。



沪ICP备19023445号-2号
友情链接