2

在我的一台 linux 服务器上,我有一个执行一些控制的脚本。有没有办法找出这个脚本在哪里被调用?这可以在另一个脚本、cobol 程序、crontab 中……打开它们中的每一个都需要很长时间。

4

2 回答 2

1

如果您可以修改脚本,请输入ps一行以获取父 pid,ps再次使用 grep 获取父 pid 以获取命令,然后登录到文件。

大约一周后回来,您应该拥有触发脚本的命令。如果它是嵌套的,你可能想要递归或类似的。

要在不修改脚本的情况下执行此操作,您需要一个观察程序脚本/程序来检查对脚本文件的访问或ps每隔一段时间调用一次。但是,如果您有这种访问权限,那么只修改脚本可能会更容易。

编辑:显然,获取父 pid 和命令的命令,无需重复调用ps,如下所示:

ps -p $$ -o ppid=
cat /proc/<pid>/cmdline

来自jweyrich的回答here

于 2013-04-22T13:10:14.263 回答
0

为它准备好:

  • grep -lr yourscript /etc /opt/anotherlikleydir

  • 失败,搜索整个系统: grep -lr yourscript /

编辑:

  • 失败,也搜索二进制文件: grep -lar yourscript /

  • 否则,脚本要么由登录用户执行,要么由脚本远程登录执行……如果是这种情况,请尝试 peachykeen 的方法并编辑脚本……为什么不将 aps axf也转储到日志中。

于 2013-04-22T13:26:26.173 回答