LINUX.ORG.RU

Поиск ошибок в файле

 , , ,


0

1

Передавал большой файл по сети при помощи netcat. Файл побился.
Оригинал:

~$ ls -l school.img.gz 
-rw-rw-r-- 1 golovin golovin 122209414338 окт.  31 02:04 school.img.gz

~$ md5sum school.img.gz 
3e689b41811cbc251199396a127d4ad6  school.img.gz
Получившаяся копия:
$ > ls -l school.img.gz
-rw-r--r-- 1 golovin users 122209414338 нояб. 12 05:14 school.img.gz

$ > md5sum school.img.gz
77e54601eed73a6fa1704b9f1fc9204c  school.img.gz
md5 не совпадает, значит образ побился при передаче, так? Как быстро найти и исправить ошибку?

★★★★★

Ответ на: комментарий от CYB3R

-c, --checksum skip based on checksum, not mod-time & size
формат команды конечно гуглить будешь сам
в идеальном идеале, думаю rsync перекачает только отличающиеся участки

zolden ★★★★★ ()
Ответ на: комментарий от CYB3R

rsync -v --no-whole-file -c remoteuser@remotehost:school.img.gz school.img.gz

должно выдать, насколько круто получилось скопировать (в примере я недокопировал 9МБ и забил 10МБ нулями в файле назначения для теста): sent 20038615 bytes received 68068 bytes 5744766.57 bytes/sec total size is 103884055 speedup is 5.17

ihanick ()
~$ for i in `seq 4000`; do echo -n "$i: "; dd if=test1.tmp bs=1K count=1 skip=$i 2>/dev/null | md5sum; done > out1.tmp
~$ for i in `seq 4000`; do echo -n "$i: "; dd if=test2.tmp bs=1K count=1 skip=$i 2>/dev/null | md5sum; done > out2.tmp
~$ diff out1.tmp out2.tmp 
2779c2779
< 2779: 4df3adef98bd297399eb1e346673d3ec  -
---
> 2779: af24f12cdbc0f16f4244ec8ea3f8837e  -
anonymous ()
Ответ на: комментарий от anonymous

считать суммы от кусков умеет md5deep, ключ -p

i-rinat ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.