用它解决大问题啦,STRACE应用

时间:2022-06-30 19:14:22

脚本是沙沙,辉哥和我在去年解决一个PHP时弄出来的。。。强!

简单而实用。

抓到的TRC文件放在TRC目录下。

如果有异常的进程或输出,可以在里面详细的分析。。

#!/bin/bash

mkdir trc
rm -rf trc/*.trc

additional_strace_args="$1"

MASTER_PID=$(ps auwx | grep php-fpm | grep -v grep | grep 'master process'  | cut -d ' ' -f 7)

summarise=""
#shows total of calls - comment in to get
#summarise="-c"

nohup strace  -r $summarise -p $MASTER_PID -ff -o ./trc/master.follow.trc >"trc/master.$MASTER_PID.trc" 2>&1 &

while read -r pid;
do
    if [[ $pid != $MASTER_PID ]]; then
        #shows total of calls
        nohup strace -s 1024 -r -Tt $summarise -p "$pid" $additional_strace_args >"trc/$pid.trc" 2>&1 &
    fi
done < <(pgrep php-fpm)

read -p "Strace running - press [Enter] to stop"

pkill strace