首页 > 其他分享 >随笔-调试-常用命令零散记录 1

随笔-调试-常用命令零散记录 1

时间:2023-10-16 22:22:10浏览次数:43  
标签:零散 log -- view 常用命令 cs line 随笔 name

【01】valgrind

view
valgrind --log-file='valgrind_report.log' --time-stamp=yes --tool=memcheck --leak-check=full --show-leak-kinds=all ./exec

【02】gdb

view
gdb -iex 'set pagination off' -iex 'set confirm off' -iex 'set print elements 0' -ex 'thread apply all bt' -ex 'quit' attach -p
gdb 条件断点 字符串比较 $_streq()

【03】查看消息队列状态

view
ipcs -qp | awk '/3193/{print "ipcs -qp -i "$1}' | bash

【05】perf

view
cs_pid=$(cat /var/run/cs.pid); perf record -F 99 -p $cs_pid --call-graph dwarf -- sleep 60

直接在控制台上查看:perf report

或者拷贝到本地生成火焰图:

perf script --header > out.stacks
---
生成FlameGraph
拷贝out.stacks文件到本地PC
git clone https://github.com/brendangregg/FlameGraph
cd FlameGraph/
./stackcollapse-perf.pl < ../out.stacks | ./flamegraph.pl --hash > out.svg

【06】top

view
top -n 1 -p $(pidof cs) -H -b

打印某个进程占用CPU的线程:

top -H -p $(cat /var/run/$1.pid) -o PPID -d 1 -b -w 512 | awk -F' ' '/(^top)|(^\s*[0-9])/{
            if ($1~/[0-9]/) {
                if ($9 > 90) arr[$1]=$12"["$9"]";
            } else {
                for (i in arr) line=line sep arr[i];
                if (line != "") print $3,line;
                delete arr;line="";
            }
        }'

【07】tail

view
tail命令 对于有进行日志分割的使用-F替代-f,详细说明见 tail --help

【08】mysql binlog:

view
for name in $(ls -rt binlog.0*); do echo $name;/usr/bin/mysqlbinlog --no-defaults --base64-output=decode-rows --start-datetime='2023-09-22 20:30:00' --stop-datetime='2023-09-25 09:30:00' -d stbDb  -v /var/lib/mysql/${name} --result-file=4141_${name}.sql; done

【09】日志分析

view
统计请求时间分布: egrep --no-filename '^2023-10-09 17:2[3-4].*_WsServerCallBack.*Sending message' $(ls -rt cs*log | tail -n 500) -A 3 | grep forwardMsg -B 2 | egrep '^2023' | cut -c12-19 | awk '{x[$1]++;} END{for(i in x) print(i ":" x[i])}' | sort

> echo "2023-10-09 17:24:07.857568" | cut -c12-19 => 17:24:07

【10】日志分析

view
# 使用 bash mlog-save.sh "2023-10-10 09:00:00"

[ "$1" != "" ] && {
    dir_name="mlog_${1}"
    dir_name=${dir_name/ /-}
    mkdir $dir_name

    echo "FILTER LOGS..."
    log_start=$(egrep -l "^$1" $(ls -rt cs*log | tail -n 500) | head -n 1)
    [ "$log_start" != "" ] && {

        echo "FILTER LOGS SUCCESS, SAVE LOG"
        cp -a $(ls -rt cs*log | egrep -w "^${log_start}$" -A 500) $dir_name/

        cd $dir_name || exit

        log_list=$(ls -rt cs*log)
        echo "$log_list" > log-list.txt

        echo -e "$dir_name:\n$log_list\n"

        [ "$log_list" != "" ] && {
            first_line=$(egrep -nr -m 1 "^$1" $log_list | head -n 1)
            [ "$first_line" != "" ] && {
                first_line_file_name=$(awk -F':' '{print $1}' <<< "$first_line")
                first_line_start_num=$(awk -F':' '{print $2}' <<< "$first_line")

                [ "$first_line_file_name" != "" ] && {
                    [ $first_line_start_num -gt 1 ] && {
                        echo "trim log: sed -i \"1,${first_line_start_num}d\" $first_line_file_name"
                        sed -i "1,${first_line_start_num}d" $first_line_file_name
                    }
                }

                echo "数据统计:"
                # ...
            }
        }
    }
}

标签:零散,log,--,view,常用命令,cs,line,随笔,name
From: https://www.cnblogs.com/stellar-liyanbin/p/17666973.html

相关文章

  • 随笔-调试-常用命令零散记录 2 网络工具
    【1】测量两点之间的带宽iperf测试是否千兆:服务端:iperf-s-u-p22345-i1客户端:iperf-c10.10.2.58-p22345-i1-t60-b1000M-u【2】net_stat.sh#!/bin/bashdeviation=0if_name=$1rx_bit=tx_bit=[[-z"$if_name"]]&&{echo"usage:$0[if_......
  • MySQL常用命令
    登录MySQL控制台:mysql-uusername-p:使用指定用户名登录MySQL,系统将提示输入密码mysql-hhost-uusername-p:使用指定主机、用户名登录MySQL,系统将提示输入密码quit或\q:退出控制台常见的SQL命令:CREATEDATABASEdbname;:创建名为dbname的数据库DROPDATABASEdbname;......
  • 随笔
    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/23rjjsjc 这个作业的目标建立属于自己的博客,介绍自己以及表达对课程的期待姓名-学号王宏杰-2021330301087我是浙江理工大学电气工程及其自动化专业的学生,很高兴有机会向大家介绍我自己。我叫王宏杰,来自浙江台州,是......
  • Linux常用命令
    一、入门步骤1、下载安装虚拟机VMware2、在虚拟机VMware上安装系统可以安装任何系统(Windows、Linux、mac等)LinuxCentOS做练习3、[root@ryan~]#认识提示符o [用户@计算机名当前目录]#o ~表示在访问root目录/表示根目录o #表示超级用户o $普通用户......
  • yarn的常用命令
    yarn的常用命令:yarn-v//查看yarn版本yarnconfiglist//查看yarn配置yarnconfiggetregistry//查看当前yarn源//修改yarn源(此处为淘宝的源)yarnconfigsetregistryhttps://registry.npm.taobao.org//yarn安装依赖yarnadd包名//局部安......
  • 【Dotnet篇】Dotnet CLI常用命令
    dotnet--list-sdks//列出已经安装的sdk版本信息dotnet--list-sdksdotnet--list-runtimes//列出已经安装的运行时版本信息dotnet--list-runtimesdotnetnugetlistsource//这会列出当前配置的所有NuGet包源。dotnetnugetlistsource//添加新的NuGet包源do......
  • java——redis随笔——实战——商户查询缓存
                      把key做了下代码优化: /***根据id查询商铺信息*@paramid商铺id*@return商铺详情数据*/@OverridepublicResultqueryById(Longid){//key要唯......
  • linux学习记录(管道、环境变量与常用命令) 10.14~10.15
    管道;类似文件重定向第一个命令的标准输出至第二个命令的标准输入,第二个文件的标准输出至第三个命令的标准输入(1)只会处理stdout标准输出,stderr会忽略(2)管道右边的命令必须能接受stdin(有些指令如:rmtmp-r接收的是文件参数)(3)多个管道命令可以串联 与文件重定向的区别:文件重......
  • debug常用命令
    debug常用命令参考教程https://blog.csdn.net/happylzs2008/article/details/113825836挂载硬盘mountc:d:/masmc:dir生成可执行文件masmsample.asm;后缀名可省略linksample.objsample.exer查看和修改寄存器查看:最后一行是下一条要执行的命令修改寄存器内......
  • 「闲话随笔」 C++ namespace K8He-Math version -1.0.0 is officially released!
    C++namespaceK8He-Mathversion-1.0.0isofficiallyreleased!写着玩的,不清楚是否有实用价值,看个乐就行,别D.有Bug可以自己调(怎么用感觉比较好看出来.namespaceMATH{ namespaceType{ usingi32=int; usingi64=longlong; usingu32=std::uint32_t;......