The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Рекурсивный md5sum, зависает, !*! Gekt0r, 11-Май-09, 15:11  [смотреть все]
Всем привет,
хочу написать программу, которая считает рекурсивно контрольные суммы всех файлов на файловой системе.
Делаю на Перле, вроде, сделал.
Но только на этапе подсчета контрольных сумм она виснет. Непонятно, почему.
Можете подсказать, есть ли какие-то ограничения у md5sum? Почему такое может происходить
  • Рекурсивный md5sum, зависает, !*! allez, 19:34 , 11-Май-09 (1)
    >Всем привет,
    >хочу написать программу, которая считает рекурсивно контрольные суммы всех файлов на файловой
    >системе.
    >Делаю на Перле, вроде, сделал.
    >Но только на этапе подсчета контрольных сумм она виснет. Непонятно, почему.
    >Можете подсказать, есть ли какие-то ограничения у md5sum? Почему такое может происходить

    Покажите свой скрипт. Вы, похоже, допустили где-то ошибку и вместо того, чтобы отыскать и исправить
    ее, начинаете искать несуществующие изъяны у использованного инструмента. Специально прогнал эту
    задачу на трех десятках тысяч файлов в каталогах разной степени вложенности - не зависает.

    P. S. Вам эту задачу в учебном заведении задали?

    • Рекурсивный md5sum, зависает, !*! Gekt0r, 20:03 , 11-Май-09 (2)
      >[оверквотинг удален]
      >>Но только на этапе подсчета контрольных сумм она виснет. Непонятно, почему.
      >>Можете подсказать, есть ли какие-то ограничения у md5sum? Почему такое может происходить
      >
      >Покажите свой скрипт. Вы, похоже, допустили где-то ошибку и вместо того, чтобы
      >отыскать и исправить
      >ее, начинаете искать несуществующие изъяны у использованного инструмента. Специально прогнал эту
      >задачу на трех десятках тысяч файлов в каталогах разной степени вложенности -
      >не зависает.
      >
      >P. S. Вам эту задачу в учебном заведении задали?

      это связано с моими исследованиями (:

      вот скрипт, на перле:

      #!/usr/bin/perl -w

          system ("ls / -aR > result");
          $path;
          @list;
          
          open (SDATA, result);  #тут мы получили список всех файлов, для которых прогоним md5sum
          while (my $line = <SDATA>) {
              chomp($line);
              if ($line =~ /^\//) {
              chop ($line);
              $path = $line;
              }
              elsif ($line ne "." && $line ne "..") {

              my $toFile = $path.'/'.$line;   #генерируем имя файла,
                      system ("md5sum $toFile");      #и считаем контрольную сумму
                 }
               }
      вот в этой проге на каком-то этапе она словно зависает, приходится закрывать терминал

      можете поделиться своей? Или указать, что я сделал не так?

      • Рекурсивный md5sum, зависает, !*! angra, 01:18 , 12-Май-09 (3)
        Мда, лучше четко скажите чего вам надо. Проще дать вам готовый однострочник(почти наверняка это будет find . -type f -exec md5sum '{}' \;), чем комментировать все дурости, которые вы наделали.
      • Рекурсивный md5sum, зависает, !*! allez, 04:51 , 12-Май-09 (4)
        >можете поделиться своей? Или указать, что я сделал не так?

        Я не мудрствовал лукаво и использовал ту же команду, которую указал angra.

        • Рекурсивный md5sum, зависает, !*! Gekt0r, 22:31 , 12-Май-09 (5)
          >>можете поделиться своей? Или указать, что я сделал не так?
          >
          >Я не мудрствовал лукаво и использовал ту же команду, которую указал angra.
          >

          все равно виснет. Каждый раз на файле /proc/kmsg

          • Рекурсивный md5sum, зависает, !*! Андрей, 01:21 , 13-Май-09 (6)
            Высчитывать md5 для /proc безсмысленно, так как содержимое /proc постоянно меняется.
            man proc.


            • Рекурсивный md5sum, зависает, !*! Gekt0r, 12:41 , 15-Май-09 (7)
              >Высчитывать md5 для /proc безсмысленно, так как содержимое /proc постоянно меняется.
              >man proc.

              аминь. Одну причину зависания выяснили. Хотя постом выше написано, что работает "на ура".

              Какие-нибудь еще могут быть глюки с этим?

              • Рекурсивный md5sum, зависает, !*! allez, 13:50 , 15-Май-09 (8)
                >аминь. Одну причину зависания выяснили. Хотя постом выше написано, что работает "на ура".

                В моем сообщении нигде не сказано о вычислении хеша MD5 для содержимого /proc. На всякий случай
                уточню: я выполнил команду find ~ -type f -exec md5sum {} \;, которая отработала на моем
                домашнем каталоге.


                >Какие-нибудь еще могут быть глюки с этим?

                Как было сказано выше, не следует прогонять md5sum на динамически изменяющихся файлах. Так что
                кроме /proc нужно исключать из обработки как минимум /var/log и /tmp...

                • Рекурсивный md5sum, зависает, !*! Gekt0r, 15:55 , 16-Май-09 (9)
                  >>Какие-нибудь еще могут быть глюки с этим?
                  >
                  >Как было сказано выше, не следует прогонять md5sum на динамически изменяющихся файлах.
                  >Так что
                  >кроме /proc нужно исключать из обработки как минимум /var/log и /tmp...

                  поможете с командой?
                  Для того, чтобы исключить /proc я прогнал find / -type d -name proc -prune -o -exec md5sum {} \;

                  В этот раз команда зависла в каталоге /var
                  я попробовал
                  find / -type d -name proc -prune -name var -prune -o -exec md5sum {} \;

                  команда все равно зависла в каталоге var
                  как исключить сразу несколько каталогов? Я в инете поискал, не нашел

                  • Рекурсивный md5sum, зависает, !*! angra, 16:45 , 16-Май-09 (10)
                    А может пора уже сказать зачем вам понадобилось делать md5sum от корня? Сдается вы изобретаете велосипед, причем  на ручном приводе и с треугольными колесами :)
                    • Рекурсивный md5sum, зависает, !*! Gekt0r, 16:56 , 16-Май-09 (11)
                      >А может пора уже сказать зачем вам понадобилось делать md5sum от корня?
                      >Сдается вы изобретаете велосипед, причем  на ручном приводе и с
                      >треугольными колесами :)

                      мне нужен максимально подробный "снимок" файловой системы. Файлы и их контрольные суммы.
                      Кроме как почитать для каждого md5, я не знаю, как это можно сделать.

                      Зачем это, пока говорить не могу :(

                      Как можно несколько каталогов из find исключить?) Или есть вариант приделать велосипеду круглые колеса?))

                      • Рекурсивный md5sum, зависает, !*! angra, 17:30 , 16-Май-09 (12)
                        >Как можно несколько каталогов из find исключить?)

                        Ну можно почитать опции find, только при этом не забывать, что многое зависит от версии. Я бы просто использовал find | grep -v 'regex' | xargs или возможности шелла по заданию стартовых точек для find вместо /

                        >Или есть вариант приделать велосипеду круглые колеса?))

                        Это вам виднее, вы же знаете для чего вы все это делаете. Если для безопасности, то есть вещи типа rkhunter, если для синхронизации, то есть rsync. Практически наверняка есть готовая тулза, которая делает хеши нужных файлов в системе. Удачи в работе над велосипедом.

                      • Рекурсивный md5sum, зависает, !*! Самый Анонимус, 01:16 , 17-Май-09 (13)
                        >мне нужен максимально подробный "снимок" файловой системы. Файлы и их контрольные суммы.

                        aide




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

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