The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Поиск "проблемных" бинарников в системе
Если в системе по каким-то причинам есть бинарные файлы, а нет внешних
библиотек к ним, то этот скрипт поможет достаточно просто найти такие файлы:

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

   # Loop through our array.
   for x in ${directory[@]}
   do
     # Find all Files
     # for i in $(find $x -type f -executable)
     for i in $(find $x -type f)
     do
     # если ldd выдает ошибку "not found".. 
     n=`ldd "$i" | grep found 2>/dev/null`
     if [ -n "$n" ]; then
     #  echo $i " not found lib: " $n
     #  с небольшой корректировкой, выкидываем "=> not found"
        echo "$i  not found lib(s): $n" | sed "s/$toreplace//g"
     fi
     done
   done
 
19.04.2010 , Автор: Карбофос
Ключи: shell, lib, binary / Лицензия: CC-BY
Раздел:    Корень / Программисту и web-разработчику / Shell / Готовые скрипты

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Одмин (?), 13:49, 19/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    revdep-rebuild? :)
     
     
  • 2.2, Diesel (??), 14:49, 19/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Не все ж такие умные на генте сидят
     
  • 2.18, vayerx (ok), 23:16, 22/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    qcheck --nomtime --badonly --all | tee failed | xargs emerge
     

  • 1.3, snowdtiger (?), 14:54, 19/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не совсем правильное условие отбора файлов в директории. Часть из них скрипты на шеле, перле и т. п. А часть программ со статической сборкой. Более правильно  вместо find будет использовать конструкцию типа например для FreeBSD
    file * | grep 'dynamically linked' | awk -F ':' '{print $1}'
     
     
  • 2.5, Карбофос (ok), 15:14, 19/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    да, но они выдадут в таком случае ошибку "not a dynamic executable"
     

  • 1.4, snowdtiger (?), 15:03, 19/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кстати кроме 'проблемных' бинарников приведенным вами способом можно искать и 'проблемные' динамические библиотеки. libXXXX.so
     
     
  • 2.6, Карбофос (ok), 15:23, 19/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    поэтому я и задал в массиве директории библиотек :)
     
     
  • 3.12, me (??), 15:37, 20/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    тогда -executable не имеет смысла. В Debian, например, почти все библиотеки в /usr/lib не имеют флага x.
     
     
  • 4.14, Карбофос (ok), 17:53, 20/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    это да, спасибо за корректировку.
     

  • 1.7, Hate (ok), 17:12, 19/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для FreeBSD:

    ports/sysutils/bsdadminscripts


    утилита pkg_libchk


     
  • 1.8, sHaggY_caT (ok), 21:59, 19/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хочется сказать что-нибудь флеймовое и острое :)

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

     
     
  • 2.9, Карбофос (ok), 23:53, 19/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    букваль неделю назад установил себе MopsLinux. не запускалась одна прога. выяснилось, что народ в 64битном дистре забыли пару пакетов пересобрать под новые либы... после этого написал сей скрипт и выловил еще пару программ с подобной проблемой. а потом проверил на работе - еще пару. mpkg и synaptic.
    во как оно бывает, однако!
     
     
  • 3.16, sHaggY_caT (ok), 21:33, 20/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Да, баги есть везде :)
     
  • 2.13, Вова (?), 16:20, 20/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    ну-ну
     

  • 1.15, unscrubber (?), 19:21, 20/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо карбофосу, прикопаю скриптик на случай чего )
     
     
  • 2.17, Карбофос (ok), 01:36, 22/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    да всегда пожалуйста. :) если мне пригодилось, значит и другим, авось, сгодиться.
    я там скриптик немного подправил для большей читабельности результатов.
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру