在我的一个Linux服务器上,我有一个执行某些控件的脚本。 有没有办法找出这个脚本的调用位置?这可以是 另一个脚本,cobol程序,crontab,... 打开每一个都需要很长时间。
答案 0 :(得分:1)
如果您可以修改脚本,请输入ps
行以获取父pid,再次ps
并使用grep获取父pid以获取命令,然后登录到文件。
一周左右回来,您应该拥有触发脚本的命令。如果它是嵌套的东西,你可能想要递归或类似。
要在不修改脚本的情况下执行此操作,您需要一个观察器脚本/程序来检查脚本文件的访问权限,或者经常调用ps
。但是,如果您具有这种访问权限,则只需修改脚本即可。
编辑:显然,在不重复调用ps
的情况下获取父pid和命令的命令如下所示:
ps -p $$ -o ppid=
cat /proc/<pid>/cmdline
答案 1 :(得分:0)
Grep for it:
grep -lr yourscript / etc / opt / anotherlikleydir
失败了,搜索整个系统:grep -lr yourscript /
编辑:
失败了,也在二进制文件中搜索:grep -lar yourscript /
失败,脚本由登录用户执行或脚本化远程登录...如果是这种情况,请尝试peachykeen的方法并编辑脚本......以及为什么不转储{{1也是一个日志。