Linux shell-场景篇

作者: spring_coderman | 来源:发表于2019-10-23 17:19 被阅读0次

    1.抽取取本机IP地址
    ip addr | grep 'BROADCAST' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d '/'

    2.抽取cpu核心数
    cat /proc/cpuinfo | grep "core id" | sort | uniq | wc -l

    3.从tomcat的server.xml中抽取端口号
    server.xml地址:serverPath=/opt/web/service/conf/server.xml

     httpPort=$(cat "$serverPath" | grep 'Connector' | cut -d' ' -f6 | awk -F "[\"\"]" '{print $2}')
    

    4.shell命令更新linux crontab内容
    crontab -l > conf && echo "* * * * * hostname >> /tmp/tmp.txt" >> conf && crontab conf && rm -f conf
    解释:以上命令先将当前crontab内容写入临时文件conf中,然后使用echo追加新cron表达式到conf内容中,然后再导入到crontab中,最后删除临时文件conf

    5.删除服务器中三天前的日志

    find /opt/web/*/logs/ -type f  -mtime +3 -a  \( -name '*.txt' -o -name '*.log' \) -exec rm {} \;
    

    解释:先通过find命令搜索指定目录,然后通过mtime +3找到三天前的文件,进行文件后缀名匹配,最后执行删除操作

    6.查看系统当前网络连接数
    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

    7.查看堆内对象的分布 Top 50(定位内存泄漏)
    jmap –histo:live $pid | sort-n -r -k2 | head-n 50

    8.按照 CPU/内存的使用情况列出前10 的进程

    内存

    ps axo %mem,pid,euser,cmd | sort -nr | head -10

    CPU

    ps -aeo pcpu,user,pid,cmd | sort -nr | head -10

    9.显示系统整体的 CPU利用率和闲置率

    grep "cpu " /proc/stat | awk -F ' ' '{total = $2 + $3 + $4 + $5} END {print "idle \t used\n" $5*100/total "% " $2*100/total "%"}'
    

    10.按线程状态统计线程数(加强版)

    jstack $pid | grep java.lang.Thread.State:|sort|uniq -c | awk '{sum+=$1; split($0,a,":");gsub(/^[ \t]+|[ \t]+$/, "", a[2]);printf "%s: %s\n", a[2], $1}; END {printf "TOTAL: %s",sum}';
    

    11.按照 Swap 分区的使用情况列出前 10 的进程

    for file in /proc/*/status ; do awk '/VmSwap|Name|^Pid/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 3 -n -r | head -10
    

    12.JVM 内存使用及垃圾回收状态统计

    #显示最后一次或当前正在发生的垃圾收集的诱发原因
    jstat -gccause $pid
    
    #显示各个代的容量及使用情况
    jstat -gccapacity $pid
    
    #显示新生代容量及使用情况
    jstat -gcnewcapacity $pid
    
    #显示老年代容量
    jstat -gcoldcapacity $pid
    
    #显示垃圾收集信息(间隔1秒持续输出)
    jstat -gcutil $pid 1000
    

    13.快速杀死所有的 java 进程

    ps aux | grep java | awk '{ print $2 }' | xargs kill -9
    

    14.查找/目录下占用磁盘空间最大的top10文件

    find / -type f -print0 | xargs -0 du -h | sort -rh | head -n 10
    

    15.在log.2020-01-09.bz2中搜索文本信息

     bzgrep -i '20-01-09 16:40:' log.2020-01-09.bz2
    

    相关文章

      网友评论

        本文标题:Linux shell-场景篇

        本文链接:https://www.haomeiwen.com/subject/tcptvctx.html