在我的一台Linux服务器上,我有一个执行一些控制的脚本。 有没有find这个脚本被调用的方法? 这可以在另一个脚本,cobol程序,crontab,…打开他们每一个将需要很长的时间。
grep为它:
grep -lr yourscript / etc / opt / anotherlikleydir
否则,搜索整个系统:grep -lr yourscript /
编辑:
否则,在二进制文件也搜索:grep -lar yourscript /
否则,脚本要么由登录用户执行,要么由脚本远程登录执行…如果是这种情况,请尝试peachykeen的方法并编辑脚本…以及为什么不将ps axf
转储到日志。
如果您可以修改脚本,请在ps
行中获取父pid,再次ps
,grep为父pid获取命令,然后登录到文件。
回来一个星期左右,你应该有触发你的脚本的命令。 如果它是嵌套的东西,你可能想要递归或相似。
要做到这一点,而不修改脚本,你需要一个观察者脚本/程序检查访问脚本文件或每ps
调用一次ps
。 但是,如果您有这种访问权限,只需修改脚本可能会更容易。
编辑:显然,获取父pid和命令的命令,没有反复调用ps
,看起来像这样:
ps -p $$ -o ppid= cat /proc/<pid>/cmdline
( 从jweyrich的答案在这里 )