| Server IP : 39.106.62.82 / Your IP : 216.73.216.63 Web Server : nginx/1.14.1 System : Linux iz2ze1m0zmp2dk5c3j5ap5z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /bin/ |
Upload File : |
#!/bin/sh
show_usage()
{
cat <<__EOF__
Usage: ${0##*/} STRACE_LOG
Finds all STRACE_LOG.PID files, adds PID prefix to every line,
then combines and sorts them, and prints result to standard output.
It is assumed that STRACE_LOGs were produced by strace with -tt[t]
option which prints timestamps (otherwise sorting won't do any good).
__EOF__
}
if [ $# -ne 1 ]; then
show_usage >&2
exit 1
elif [ "$1" = '--help' ]; then
show_usage
exit 0
fi
logfile=$1
for file in "$logfile".*; do
[ -f "$file" ] || continue
suffix=${file#"$logfile".}
[ "$suffix" -gt 0 ] 2> /dev/null ||
continue
pid=$(printf "%-5s" $suffix)
# Some strace logs have last line which is not '\n' terminated,
# so add extra newline to every file.
# grep -v '^$' removes empty lines which may result.
sed "s/^/$pid /" < "$file"
echo
done \
| sort -s -k2,2 | grep -v '^$'
rc=$?
[ $rc -eq 1 ] &&
echo >&2 "${0##*/}: $logfile: strace output not found"
exit $rc