The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

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

   #!/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 , Автор: Карбофос
Раздел:    Корень / Программисту и web-разработчику / Shell / Готовые скрипты

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Одмин, 13:49, 19/04/2010 [ответить] [смотреть все]
  • +/
    revdep-rebuild? :)
     
     
  • 2.2, Diesel, 14:49, 19/04/2010 [^] [ответить] [смотреть все]
  • +/
    Не все ж такие умные на генте сидят
     
  • 2.18, vayerx, 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, Карбофос, 15:14, 19/04/2010 [^] [ответить] [смотреть все]
  • +/
    да, но они выдадут в таком случае ошибку "not a dynamic executable"
     
  • 1.4, snowdtiger, 15:03, 19/04/2010 [ответить] [смотреть все]  
  • +/
    Кстати кроме 'проблемных' бинарников приведенным вами способом можно искать и 'проблемные' динамические библиотеки. libXXXX.so
     
     
  • 2.6, Карбофос, 15:23, 19/04/2010 [^] [ответить] [смотреть все]  
  • +/
    поэтому я и задал в массиве директории библиотек :)
     
     
  • 3.12, me, 15:37, 20/04/2010 [^] [ответить] [смотреть все]  
  • +/
    тогда -executable не имеет смысла. В Debian, например, почти все библиотеки в /usr/lib не имеют флага x.
     
     
  • 4.14, Карбофос, 17:53, 20/04/2010 [^] [ответить] [смотреть все]  
  • +/
    это да, спасибо за корректировку.
     
  • 1.7, Hate, 17:12, 19/04/2010 [ответить] [смотреть все]  
  • +/
    Для FreeBSD:

    ports/sysutils/bsdadminscripts


    утилита pkg_libchk


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

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

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

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

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList