zoukankan      html  css  js  c++  java
  • 常见问题解决方案整理(一)

    tail命令

    tail -300f shopbase.log #倒数300行并进入实时监听文件写入模式
    

     

    grep命令

    $ grep forest f.txt     #文件查找
    $ grep forest f.txt cpf.txt #多文件查找
    $ grep 'log' /home/admin -r -n #目录下查找所有符合关键字的文件
    $ cat f.txt | grep -i shopbase   
    $ grep 'shopbase' /home/admin -r -n --include *.{vm,java} #指定文件后缀
    $ grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #反匹配
    $ seq 10 | grep 5 -A 3    #上匹配
    $ seq 10 | grep 5 -B 3    #下匹配
    $ seq 10 | grep 5 -C 3    #上下匹配,平时用这个就妥了
    $ cat f.txt | grep -c 'SHOPBASE'

    awk命令

    $ awk '{print $4,$6}' f.txt
    $ awk '{print NR,$0}' f.txt cpf.txt   
    $ awk '{print FNR,$0}' f.txt cpf.txt
    $ awk '{print FNR,FILENAME,$0}' f.txt cpf.txt
    $ awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' f.txt cpf.txt
    $ echo 1:2:3:4 | awk -F: '{print $1,$2,$3,$4}'
    
    
    
    $ awk '/ldb/ {print}' f.txt   #匹配ldb
    $ awk '!/ldb/ {print}' f.txt  #不匹配ldb
    $ awk '/ldb/ && /LISTEN/ {print}' f.txt   #匹配ldb和LISTEN
    $ awk '$5 ~ /ldb/ {print}' f.txt #第五列匹配ldb

    内建变量

    NR:NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。

    FNR:在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。

    NF: NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。

    find命令

    $ sudo -u admin find /home/admin /tmp /usr -name *.log(多个目录去找)
    $ find . -iname *.txt(大小写都匹配)
    $ find . -type d(当前目录下的所有子目录)
    $ find /usr -type l(当前目录下所有的符号链接)
    $ find /usr -type l -name "z*" -ls(符号链接的详细信息 eg:inode,目录)
    $ find /home/admin -size +250000k(超过250000k的文件,当然+改成-就是小于了)
    $ find /home/admin f -perm 777 -exec ls -l {} ; (按照权限查询文件)
    $ find /home/admin -atime -1  1天内访问过的文件
    $ find /home/admin -ctime -1  1天内状态改变过的文件   
    $ find /home/admin -mtime -1  1天内修改过的文件
    $ find /home/admin -amin -1  1分钟内访问过的文件
    $ find /home/admin -cmin -1  1分钟内状态改变过的文件   
    $ find /home/admin -mmin -1  1分钟内修改过的文件

    top

    top除了看一些基本信息之外,剩下的就是配合来查询vm的各种问题了

    ps -ef | grep java
       $ top -H -p pid
    
    
    获得线程10进制转16进制后jstack去抓看这个线程到底在干啥
    
    shell 10进制转16进制输出 
    printf "%x" 100

    网络

    Linux系统性能监控工具介绍之-tsar

    https://blog.csdn.net/lin443514407lin/article/details/59654218

    Nginx Log日志统计分析常用命令

    https://www.cnblogs.com/wangchaolinux/p/9404253.html

    netstat命令

    查看当前连接,注意close_wait偏高的情况,比如
    netstat -nat|awk  '{print $6}'|sort|uniq -c|sort -rn

    VM options

    1、你的类到底是从哪个文件加载进来的?

    -XX:+TraceClassLoading

    结果形如[Loaded java.lang.invoke.MethodHandleImpl$Lazy from D:programmejdkjdk8U74jrelib t.jar]

    2、应用挂了输出dump文件

    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs/java.hprof
    

     vm参数里边基本都有这个选项

    jar包冲突

    mvn dependency:tree > ~/dependency.txt
    打出所有依赖
    
    mvn dependency:tree -Dverbose -Dincludes=groupId:artifactId
    只打出指定groupId和artifactId的依赖关系
    
    -XX:+TraceClassLoading
    vm启动脚本加入。在tomcat启动脚本中可见加载类的详细信息
    
    -verbose
    vm启动脚本加入。在tomcat启动脚本中可见加载类的详细信息
    

      

  • 相关阅读:
    洛谷p1017 进制转换(2000noip提高组)
    Personal Training of RDC
    XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Eurasia
    XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Peterhof.
    Asia Hong Kong Regional Contest 2019
    XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Siberia
    XVIII Open Cup named after E.V. Pankratiev. Ukrainian Grand Prix.
    XVIII Open Cup named after E.V. Pankratiev. GP of SPb
    卜题仓库
    2014 ACM-ICPC Vietnam National First Round
  • 原文地址:https://www.cnblogs.com/lxcy/p/10179748.html
Copyright © 2011-2022 走看看