什么在调用我的可执行 *.sh 脚本?

什么在调用我的可执行 *.sh 脚本?

很久以前,我复制/修改了一个脚本,该脚本用于在将某些内容下载到“下载”时inotify告诉我自动的结果- 我遵循了此在线资源:clamscanhttps://fitzcarraldoblog.wordpress.com/2017/03/05/using-the-clamav-daemon-to-scan-files-placed-in-my-downloads-directory-in-gentoo-linux/

我的问题:我如何找出正在执行这个名为 的脚本的内容clamscanInotify.sh

尽管教程建议使用crontab,我也这样做了,并且已经从我的crontab -e文件中进行了编辑,但该脚本仍然以某种方式被执行。

我检查过;

  1. 我的用户的 crontab,

  2. 我的 root 的 crontab,

  3. 所有 cron.daily/weekly/etc,

  4. /etc/cron.d/

并且不能执行脚本的内容。我看过使用journal

journalctl -b | grep cron

或者当我知道下载某些东西的大概时间时,

journalctl -b | grep -e "10:00" 

我还刚刚使用 grep 搜索可执行文件名称的字符串 - clamscanInotify.sh

sudo grep -rnw / -e "clamscanInotify.sh",

但没有在任何地方找到该字符串,甚至在/etc/.

我没有at/atd守护进程,我想不出还能做什么来寻找调用此可执行脚本的任何内容clamscanInotify.sh

它也不在"Startup Applications"使用桌面 GUI 的 Linux Mint 的选择中。

我不想简单地删除 *.sh 文件,但我的屏幕和终端充满了zenity窗口和消息,这很烦人。

有什么想法可以去哪里看吗?

聚苯乙烯

这是我的照片(h)top

在此输入图像描述

答案1

缓慢的方法是使用PS:“ps -o comm= -p $PPID”做什么捕获父进程,直到找到有趣的东西。

由于您在脚本中使用 bash,因此添加:

ps -o pid=,comm= -p $PPID

并将其重定向到临时文件。检查该文件的内容,然后检查父树;例如,如果该文件包含:

8815 bash

然后跟进:

ps -o ppid=,comm= -p 8815

我们在这里请求进程 8815 的父进程 pid 和命令。

对于 Linux 系统,插入pstree -s -p $$以询问当前进程的祖先链 ( $$)。

在某些时候,您最终会看到桌面管理器或您用来登录的任何方法。

您的 bash 初始化脚本之一完全有可能正在设置此功能;我想借这个答案,例如并运行类似:

bash -ix </dev/null 2>trace

然后trace在文件中搜索相关的 inotify 脚本。正如链接的答案也所说,最好的初步猜测是:

  • ~/.bash_profile
  • ~/.profile
  • ~/.bash_login
  • /etc/profile
  • ~/.bashrc

...在这种情况下你可以尝试:

grep clamscanInotify.sh ~/.bash_profile ~/.profile ~/.bash_login /etc/profile ~/.bashrc

相关内容