reredirect-动态重定向工具使用说明

reredirect-动态重定向工具使用说明

reredirect用于获取现有正在运行的程序的打印信息,并将其输出(标准输出和错误输出)附加到文件或另一个进程。

使用说明

编译完后得到reredirect,或者直接安装到应用环境中(将reredirect放到/bin目录)。

使用方式

reredirect -m file PID
    -m:将其输出(标准输出和错误输出)附加到文件或另一个进程。 file:即附加的文件 PID:需填写想要监测的

标准输出与错误输出分别输出

reredirect -o FILE1 -e FILE2 PID
    -o:将标准输出附加到文件或另一个进程。 e:错误输出附加到文件或另一个进程。

取消输出

取消文件的输出

在每次执行reredirect指令后会提示出取消指令,直接复制执行即可取消。

[root@bogon24 bin]# reredirect -m rerefile 23517
# Previous state saved. To restore, use:
reredirect -N -O 20 -E 17 23517

其中reredirect -N -O 20 -E 17 23517为取消指令。

通过管道技术通过另一个程序输出

mkfifo:创建管道mkfifo /tmp/fifo reredirect:重定向至管道处,reredirect 23517 -m /tmp/fifo tee:显示输出并存入磁盘文件tee log < /tmp/fifo
[root@bogon24 bin]# mkfifo /tmp/fifo
[root@bogon24 bin]# reredirect 23517 -m /tmp/fifo
# Previous state saved. To restore, use:
reredirect -N -O 22 -E 19 23517
[root@bogon24 bin]# tee log < /tmp/fifo
topic:hyds/get/request/database/modelschema
payload:{

以案例说明使用方式:

将应用database的输出信息打印到某个文件中rerefile中

首先通过ps查看应用的pid。

ps -ax | grep database

将database的输出重定向至rerefile文件

reredirect -m rerefile 23517

取消重定向

reredirect -N -O 20 -E 17 23517
注:取消重定向后并不会输出到原定向输出的文件中。

执行过程

[root@bogon24 bin]# ps -ax | grep database
  1733 tty1     Ssl+   0:02 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-cVgkjm/database -seat seat0 -nolisten tcp vt1
 23517 pts/5    Sl+    0:12 ./database
 24914 pts/3    R+     0:00 grep --color=auto database
[root@bogon24 bin]# reredirect -m rerefile 23517
# Previous state saved. To restore, use:
reredirect -N -O 20 -E 17 23517
[root@bogon24 bin]# ls
a.out  a.txt  database  ds  libhiredis.a  libhiredis.so  libhiredis.so.0.14  mylog.log  reredirect  rerefile  sample  start.sh
[root@bogon24 bin]# ls -l rerefile 
-rw-r--r--. 1 root root 11026 2月  18 21:03 rerefile
[root@bogon24 bin]#

源码编译说明

编译安装直接执行以下指令即可

make
sudo make install
经验分享 程序员 微信小程序 职场和发展