Linux Forum Казахстан

Общий => Вопрос новичка => Тема начата: Ramzes от 16 Ноября 2013, 10:58

Название: Необходимо сравнить данные на разных носителях
Отправлено: Ramzes от 16 Ноября 2013, 10:58
Доброго времени суток!
Из старого ноутбука достали жесткий диск(система вентиляции незаметно для хозяйки приказала долго жить и к моменту обнаружения проблемы успела зацепить видеокарту и до кучи наградить бэдами жесткий диск), внутренний SATA был трансформирован во внешний, благо была коробка с переходником SATA на USB. На диске была установлена KU12.04 и отдельный /home(reiserfs), использовать данный носитель как загрузочный пользователь не желает(вероятно потому, что он начинает сыпаться), но необходимо забекапить содержимое /home и здесь возникает дилемма: делать бекапы я ее приучил, но:
1) делались они не регулярно и бессистемно (т.е. ПО для создания резервных копий не использовалось, информация просто копировалась, зачастую в папку с неидентичным именем на др.носитель, куда конкретно и даты последнего сохранения она увы естественно не помнет)
2) в папки с разными именами на на разные внешние диски(уже хорошо) общий массив составляет более 180 ГиБ
3) сделать полный клон 180ГБ нет физической возможности.
Нужна программа, желательно с GUI, которая сопоставит данные в разных директориях на разных дисках, наглядно представит информацию о версиях(по объему и дате последнего изменения), таким образом выявив уникальное и единичное, чтобы можно было собрать это воедино и сохранить отсортированное.

Задача проанализировать содержимое разных папок выявить уникальные
Название: Re: Необходимо сравнить данные на разных носителях
Отправлено: hedgeven от 16 Ноября 2013, 15:48
Можно что-то из этого поробовать:

$ eix -S dedup
* app-arch/zpaq
     Available versions:  ~6.38 ~6.41 {debug}
     Homepage:            http://mattmahoney.net/dc/zpaq.html
     Description:         Journaling incremental deduplicating archiving compressor

* app-backup/obnam
     Available versions:  ~1.4 ~1.5 {PYTHON_TARGETS="python2_6 python2_7"}
     Homepage:            http://liw.fi/obnam/
     Description:         A backup program that supports encryption and deduplication

* sys-fs/lessfs
     Available versions:  1.5.13 {berkdb crypt debug filelog lzo memtrace}
     Homepage:            http://www.lessfs.com
     Description:         A high performance inline data deduplicating filesystem


Например, если взять lessfs, то потребуется еще один носитель, на который будут переноситься данные. Но GUI в этом случае не потребуется.
Название: Re: Необходимо сравнить данные на разных носителях
Отправлено: Ramzes от 17 Ноября 2013, 11:41
Вчера, ночью приключилась неприятность, приняли решение перераспределить дисковое пространство, т.е. стереть / и /swap, высвободившееся пространство объединить с /home - попросили сделал, но последняя операция оказалась дюже долгой(несколько циклов по 4 часа каждый) и я оставил ее выполняться на ночь, по закону подлости, ночью вырубилась подстанция, ноут к которому был подключен внешний жесткий диск обеспечил ~90 минут, потом вырубился - это я обнаружил утром, прерванная операция вроде бы не покорежила данных, папка хомяка открывается, но, как результат, dolphin виснет при попытках задать права или скопировать содержимое .   
Название: Re: Необходимо сравнить данные на разных носителях
Отправлено: Ramzes от 17 Ноября 2013, 11:57
Цитата: hedgeven от 16 Ноября 2013, 15:48
Можно что-то из этого поробовать:

$ eix -S dedup
* app-arch/zpaq
     Available versions:  ~6.38 ~6.41 {debug}
     Homepage:            http://mattmahoney.net/dc/zpaq.html
     Description:         Journaling incremental deduplicating archiving compressor

* app-backup/obnam
     Available versions:  ~1.4 ~1.5 {PYTHON_TARGETS="python2_6 python2_7"}
     Homepage:            http://liw.fi/obnam/
     Description:         A backup program that supports encryption and deduplication

* sys-fs/lessfs
     Available versions:  1.5.13 {berkdb crypt debug filelog lzo memtrace}
     Homepage:            http://www.lessfs.com
     Description:         A high performance inline data deduplicating filesystem


Например, если взять lessfs, то потребуется еще один носитель, на который будут переноситься данные. Но GUI в этом случае не потребуется.

проблема в том, что еще одного носителя  нет, есть 1 бывший ноутбучный винт(230 ГБ), данные смарт, которого говорят о ошибках чтения, и есть несколько внешних дисков и флешек, на которых хранятся отдельные папки и файлы из того, что имеется на 230 ГБ харде, есть мой ноут, но 180 свободных ГБ нигде нет, одновременно подключить к своему ноутбуку я могу лишь 2 USB, собственно поэтому задача сводиться к тому, чтобы сверить содержимое, отсортировать новое и не дублирующееся - сохранить в папку на ноуте, затем форматнуть  битый диск.
Krusader вроде бы умеет сравнивать папки, но предварительно надо сменить права в директории на внешнем диске...   
Название: Re: Необходимо сравнить данные на разных носителях
Отправлено: НаРазДва от 17 Ноября 2013, 12:27
по теме: гугль нашёл /I know of two graphical diff programs: Meld and KDiff3.  / - diff консольная утилита сравнения файлов и каталогов.
Название: Re: Необходимо сравнить данные на разных носителях
Отправлено: hedgeven от 18 Ноября 2013, 09:32
Мне кажется diff - это не совсем тот путь. Особенно с нетекстовыми форматами.

Можно на ноуте создать ФС lessfs и переносить туда данные с внешних дисков. Если есть дублирующиеся данные, то результат будет меньше.
Я имею ввиду, что зачем делать двойную работу - сначала искать и сортировать, а потом только переносить. Что с lessfs, что без нее, потребуется одинаковое количество места.
Название: Re: Необходимо сравнить данные на разных носителях
Отправлено: sotrud_nik от 18 Ноября 2013, 10:08
Не совсем легкий и быстрый вариант, и уж точно без GUI.

Поснимать MD5 суммы с каждой директории рекурсивно, затем объединить все суммы и вытащить
уникальные.
Название: Re: Необходимо сравнить данные на разных носителях
Отправлено: hedgeven от 18 Ноября 2013, 10:16
Цитата: sotrud_nik от 18 Ноября 2013, 10:08
Не совсем легкий и быстрый вариант, и уж точно без GUI.

Поснимать MD5 суммы с каждой директории рекурсивно, затем объединить все суммы и вытащить
уникальные.


Да, я о таком сразу подумал. Простой python(или bash)-скрипт, в который через find передается имя файла(или каталога), а на выходе получаем файл с уникальными "md5 - путь/к/файлу". Потом просто копируем все записи из этого файла.
Название: Re: Необходимо сравнить данные на разных носителях
Отправлено: Ramzes от 18 Ноября 2013, 20:45
Файловая система на внешнем диске  содержит ошибки, поэтому никакие операции с диском провести не могу, поэтому буду пытаться сперва восстановить ФС, надеюсь данные в процессе не устранятся:
fsck.reiserfs --fix-fixable --rebuild-tree -q -y /dev/sdc5
что в итоге получиться отпишу.
Белый полярный зверь пришел диску:
ЦитироватьThe problem has occurred looks like a hardware problem. If you have
bad blocks, we advise you to get a new hard drive, because once you
get one bad block  that the disk  drive internals  cannot hide from
your sight,the chances of getting more are generally said to become
much higher  (precise statistics are unknown to us), and  this disk
drive is probably not expensive enough  for you to you to risk your
time and  data on it.  If you don't want to follow that follow that
advice then  if you have just a few bad blocks,  try writing to the
bad blocks  and see if the drive remaps  the bad blocks (that means
it takes a block  it has  in reserve  and allocates  it for use for
of that block number).  If it cannot remap the block,  use badblock
option (-B) with  reiserfs utils to handle this block correctly.

bread: Cannot read the block (43422505): (Input/output error).

Благо нашел на др. диске, то что считалось особо ценным(материалы и заготовки для диссертации) остальное являло собой когда-либо скачанное из Интернета, а следовательно не уникальное, единственное, за что на меня еще долго будут кукситься это памятный личный  фото-архив,  в качестве компенсации создал  аккаунты на  Yandex-disk и Dropbox объяснил как пользоваться...