URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 66069
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Поиск 'проблемных' бинарников в сис..."

Отправлено auto_tips , 19-Апр-10 13:49 
Если в системе по каким-то причинам есть бинарные файлы, а нет внешних библиотек к ним, то этот скрипт поможет достаточно просто найти такие файлы:

   #!/bin/bash
   # скрип для поиска проблемных файлов
   # список директорий для поиска
   directory=("/usr/bin/" "/usr/sbin/" "/bin/" "/usr/lib/" "/usr/lib64/")

   # Loop through our array.
   for x in ${directory[@]}
   do
     # Find all Files
     for i in $(find $x -type f -executable)
     do
     # если ldd выдает ошибку "not found"..
     n=`ldd "$i" | grep found 2>/dev/null`
     if [ -n "$n" ]; then
       echo $i " not found lib: " $n
     fi
     done
   done

URL:
Обсуждается: http://www.opennet.me/tips/info/2347.shtml


Содержание

Сообщения в этом обсуждении
"Поиск 'проблемных' бинарников в системе"
Отправлено Одмин , 19-Апр-10 13:49 
revdep-rebuild? :)

"Поиск 'проблемных' бинарников в системе"
Отправлено Diesel , 19-Апр-10 14:49 
Не все ж такие умные на генте сидят

"Поиск 'проблемных' бинарников в системе"
Отправлено vayerx , 22-Апр-10 23:16 
qcheck --nomtime --badonly --all | tee failed | xargs emerge

"Поиск 'проблемных' бинарников в системе"
Отправлено snowdtiger , 19-Апр-10 14:54 
Не совсем правильное условие отбора файлов в директории. Часть из них скрипты на шеле, перле и т. п. А часть программ со статической сборкой. Более правильно  вместо find будет использовать конструкцию типа например для FreeBSD
file * | grep 'dynamically linked' | awk -F ':' '{print $1}'

"Поиск 'проблемных' бинарников в системе"
Отправлено Карбофос , 19-Апр-10 15:14 
да, но они выдадут в таком случае ошибку "not a dynamic executable"

"Поиск 'проблемных' бинарников в системе"
Отправлено snowdtiger , 19-Апр-10 15:03 
Кстати кроме 'проблемных' бинарников приведенным вами способом можно искать и 'проблемные' динамические библиотеки. libXXXX.so

"Поиск 'проблемных' бинарников в системе"
Отправлено Карбофос , 19-Апр-10 15:23 
поэтому я и задал в массиве директории библиотек :)

"Поиск 'проблемных' бинарников в системе"
Отправлено me , 20-Апр-10 15:37 
тогда -executable не имеет смысла. В Debian, например, почти все библиотеки в /usr/lib не имеют флага x.

"Поиск 'проблемных' бинарников в системе"
Отправлено Карбофос , 20-Апр-10 17:53 
это да, спасибо за корректировку.

"Поиск 'проблемных' бинарников в системе"
Отправлено Hate , 19-Апр-10 17:12 
Для FreeBSD:

ports/sysutils/bsdadminscripts


утилита pkg_libchk



"Поиск 'проблемных' бинарников в системе"
Отправлено sHaggY_caT , 19-Апр-10 21:59 
Хочется сказать что-нибудь флеймовое и острое :)

Но скажу проще: люди, не превращайте Вашу систему в LFS, используйте пакетный менеджер, если у Вас бинарный дистрибутив, и даже если не бинарный, все равно, тарболлы они не для Вас, а для мантайнеров!


"Поиск 'проблемных' бинарников в системе"
Отправлено Карбофос , 19-Апр-10 23:53 
букваль неделю назад установил себе MopsLinux. не запускалась одна прога. выяснилось, что народ в 64битном дистре забыли пару пакетов пересобрать под новые либы... после этого написал сей скрипт и выловил еще пару программ с подобной проблемой. а потом проверил на работе - еще пару. mpkg и synaptic.
во как оно бывает, однако!

"Поиск 'проблемных' бинарников в системе"
Отправлено sHaggY_caT , 20-Апр-10 21:33 
Да, баги есть везде :)

"как наивно"
Отправлено Вова , 20-Апр-10 16:20 
ну-ну

"Поиск 'проблемных' бинарников в системе"
Отправлено unscrubber , 20-Апр-10 19:21 
Спасибо карбофосу, прикопаю скриптик на случай чего )

"Поиск 'проблемных' бинарников в системе"
Отправлено Карбофос , 22-Апр-10 01:36 
да всегда пожалуйста. :) если мне пригодилось, значит и другим, авось, сгодиться.
я там скриптик немного подправил для большей читабельности результатов.