在我的一台 linux 服务器上,我有一个执行一些控制的脚本。有没有办法找出这个脚本在哪里被调用?这可以在另一个脚本、cobol 程序、crontab 中……打开它们中的每一个都需要很长时间。
问问题
88 次
2 回答
1
如果您可以修改脚本,请输入ps
一行以获取父 pid,ps
再次使用 grep 获取父 pid 以获取命令,然后登录到文件。
大约一周后回来,您应该拥有触发脚本的命令。如果它是嵌套的,你可能想要递归或类似的。
要在不修改脚本的情况下执行此操作,您需要一个观察程序脚本/程序来检查对脚本文件的访问或ps
每隔一段时间调用一次。但是,如果您有这种访问权限,那么只修改脚本可能会更容易。
编辑:显然,获取父 pid 和命令的命令,无需重复调用ps
,如下所示:
ps -p $$ -o ppid=
cat /proc/<pid>/cmdline
于 2013-04-22T13:10:14.263 回答
0
为它准备好:
grep -lr yourscript /etc /opt/anotherlikleydir
失败,搜索整个系统: grep -lr yourscript /
编辑:
失败,也搜索二进制文件: grep -lar yourscript /
否则,脚本要么由登录用户执行,要么由脚本远程登录执行……如果是这种情况,请尝试 peachykeen 的方法并编辑脚本……为什么不将 a
ps axf
也转储到日志中。
于 2013-04-22T13:26:26.173 回答