Я бы посмотрел на места инициализации и посмотрел, установлена ли там программа для запуска.
Честно говоря, если программа каким-то образом могла запускаться, но вы не знаете, запускалась она или нет, единственный шанс увидеть, запустилась ли она, - это проверить, есть ли у нее способ запуска (например, был зарегистрирован в каком-то local.rc
или подобном), либо путем проверки результатов (например, программа всегда касается файла / home / someuser / a
, и ничего другого не должно было касаться Это).
Выше предполагается, что у вас нет журналов.
начинаю свой ответ на основе этого ответа:
Да, у вас есть много вариантов / инструментов для использования. Я только что пробовал это, работает:
ifconfig | grep -oE "\ b ([0-9] {1,3}.) {3} [0-9] {1,3} \ b" a , чтобы вы могли использовать grep -oE "\ b ([0-9] {1,3}.) {3} [0-9] {1,3} \ b" для поиска IP-адресов из вашего вывода.
и преобразование ответа в полноразмерный IPv6 и т.д ...:
fgrep -oE "\b([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}\b" -- file
если вы хотите сохранить / nnn, если он есть:
fgrep -oE "\b([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}(/[0-9]{1,3}){0,1}\b" -- file
, а также есть сокращенная версия IPv6, которая включает '::'.
, чтобы узнать больше о IPv6, вы можете посмотреть здесь: https://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
Да, у вас есть много возможностей / инструментов. Я только что попробовал, работает:
ifconfig | grep -oE "\ b ([0-9] {1,3} \.) {3} [0-9] {1,3} \ b"
, поэтому вы можете использовать grep -oE " \ b ([0-9] {1,3} \.) {3} [0-9] {1,3} \ b "
для поиска IP-адресов из вашего вывода.
Перенаправить этот вывод в некоторый файл вывода
Просто grep
это с шаблоном как,
grep -sE "159.143.23.12|134.12.178.131|124.143.12.132" <outputFile>
Если ваш файл называется, например, ips
, вы можете написать что-нибудь вроде:
while read -r ip
do
if [[ $ip == "$1" ]]; then
shift
printf '%s\n' 'action to take if match found'
else
printf '%s\n' 'action to take if match not found'
fi
done < ips
Затем вы можете передать параметры, как показано в сценарии
./myscript 159.143.23.12 134.12.178.131 124.143.12.132 124.143.12.132
Если у вас есть список IP в файле, по одному в строке, grep
уже имеет удобную опцию -f
:
$ man fgrep | grep file= -A1
-f FILE, --file=FILE
Obtain patterns from FILE, one per line. The empty file contains zero patterns, and therefore matches nothing. (-f is specified by POSIX.)
Это может вызвать несколько ложных срабатываний из-за строк, за которыми может следовать другое число, чтобы сделать его другим IP. С этим можно многое сделать, в зависимости от вашего случая вы можете беспокоиться или не беспокоиться.
Протестировано в SmartOS(варианте Solaris ), надеюсь, должно работать в других *средах nix:
egrep '(([0-9]|[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])'
Пример:
$ cat >file.txt
IP1: 192.168.1.1
IP2: 261.480.201.311
IP3: 1012.680.921.3411
$ egrep '(([0-9]|[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])' file.txt
IP1: 192.168.1.1
Этот шаблон соответствует только действительному IPv4, т. е. x.x.x.x
, где x
находится в диапазоне от 0 -255. Если вам нужно извлечь только совпадающий IP-адрес, добавьте параметр -o
в вышеуказанная команда. Вы можете встроить эту команду в сценарий bash и, предположительно, в другие сценарии оболочки. И, если egrep
терпит неудачу,try grep -E...
Использование в (сценарии оболочки bash ):
ip=$(egrep -o '(([0-9]|[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])' file.txt)
echo $ip
Я думаю, что мой ответ на другой пост лучше подходит здесь. Благодаря этому сообщению и другим подобным я придумал это, которое ищет правильный формат IP, а затем избавляется от всех строк, содержащих 256 или выше. Замените IP-адрес чем-то, что не является -допустимым, чтобы вместо этого не видеть вывод:
echo '255.154.12.231' | grep -E '(([0-9]{1,3})\.){3}([0-9]{1,3}){1}' | grep -vE '25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]'
Первый grep, вероятно, был найден в этом посте, и он проверяет любые числа от 0 -999 в формате X.X.X.X
Второй grep удаляет строки с номерами 256 -999, таким образом оставляя только действительные IP-адреса формата, поэтому я подумал
НО... Как указал G -Man, я ошибся, предполагая, что IP будет находиться на отдельной строке. Тем не менее, в большинстве случаев по обе стороны IP-адреса будет пробел или другой разделитель. Пробелы/разделители можно удалить с помощью sed или других средств после того, как IP-адрес будет найден. Я также добавил -o к первому grep:
echo ' 1234.5.5.4321 ' | grep -Eo ' (([0-9]{1,3})\.){3}([0-9]{1,3}){1} ' | grep -vE '25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]' | sed 's/ //'
echo ' 234.5.5.432 ' | grep -Eo ' (([0-9]{1,3})\.){3}([0-9]{1,3}){1} ' | grep -vE '25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]' | sed 's/ //'
echo ' 234.5.5.100 ' | grep -Eo ' (([0-9]{1,3})\.){3}([0-9]{1,3}){1} ' | grep -vE '25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]' | sed 's/ //'
Первое и второе не дадут вывода, а третье даст, и пробелы будут удалены.
Вот краткая форма
grep -oE "\b(\d{1,3}\.){3}\d{1,3}\b"
\d для цифр [0 -9]