Обнаружьте, какие сценарии используют старые интерпретаторы

У меня есть несколько машин Debian с некоторыми почти осиротевшими интерпретаторами сценария, например /bin/bash3 и /usr/bin/perl510. Как я могу обнаружить те сценарии, которые все еще имеют вышеупомянутые интерпретаторы в их строке хижины?

#!/bin/bash3

или

#!/usr/bin/perl510

Рекурсивно поиск файловой системы не является действительно жизнеспособным вариантом. Переименование интерпретаторов для создания сбоя сценариев находится также не в картах.

То, в чем я преуспел, использовало incrond для корня с IN_OPEN обнаружить использование этих старых интерпретаторов. Оттуда я назвал простой сценарий оболочки для обнаружения больше, но PPID тот из incrond. Оба fuser и lsof ничего не возвратил.

#!/bin/bash

LOG=/tmp/icc.log
echo "PID  is $$"       >> ${LOG}
echo "PPID is ${PPID}"  >> ${LOG}
echo "\$1 is ${1}"      >> ${LOG}

echo "fuser ${1}"       >> ${LOG}
fuser ${1}              >> ${LOG}
echo                    >> ${LOG}

echo "lsof ${1}"        >> ${LOG}
lsof ${1}               >> ${LOG}
echo                    >> ${LOG}
1
задан 1 August 2014 в 18:39
1 ответ

Создайте оберточный скрипт так:

#!/bin/sh

echo "`date` `whoami` $0 $*" >> /tmp/bash3_use.log

/bin/bash3.bin "$@"

Затем переименуйте bash3 в bash3.bin и назовите этот скрипт "/bin/bash3"

Возможно, вам понадобится записать в журнал больше информации, например, рабочий каталог.

3
ответ дан 3 December 2019 в 18:44

Теги

Похожие вопросы