سلام
بعضی وقتها پیش می یاد که کلی وقت می زاری، حجم دانلود می زاری و کلی چیز دیگه که یک سی دی رو دانلود کنی بعد که دانلود می کنی می بینی که md5 اش خرابه !(یا به هر طریق دیگه ای می بینی که خرابه!) یک راه که (من توی چندوقت یکی دوبار بیشتر بدردم نخورد) هست اینکه که می گن باید بری تورنتش رو پیدا کنی! که اگرم پیدا کنی مشکلات خودش رو داره (مثلا من الان تورنت نسخهی بتای pcbsd رو نتونستم پیدا کنم!) به هر حال. چیزی که مهمه اینکه معمولا یک قسمت کوچک از کل فایل خرابه نه همش! که خب در اینجا من این اسکریپت رو نوشتم که همون قسمت های کوچیک! رو پیدا کنه و دانلود کنه!(البته با کمک کسی که فایل سالم رو داره!)
در واقع این اسکریپت دارهای دو بخشه یکی باید توسط کس دیگری که فایل سالم داره اجرا بشه وقسمت دیگری توسط خودمون!
قسمت اول می یاد اون فایل سالم را به قطعات ۵۱۲ کیلوبایتی تقسیم می کنه و md5 هر قسمت رو محاسبه و در یک فایل ذخیره می کنه که خوب اون فرد باید فایل md5ش رو بفرسته (اسم فایل md5sum.org است) البته از اونجایی که آدم کمی پیدا می شه که همچین کاری رو انجام بده بهتره که ما از یک شل گنو/لینوکس استفاده کنیم (که رایگانش هم پیدا می شه کافیه توی گوگل free shell linux رو جست و جو کنید ) (در اینجا گنو بودن خیلی مهمتر از لینوکس بودنه! این اسکریپت روی freebsd اجرا نشد چون ابزارهای هسته گنو رو نداشت!) ( اسم این اسکریپت server.do هست)
قسمت دوم هم (که ما قراره اجراش کنیم) همون کار قسمت اول رو انجام می ده با این تفاوت که فایل md5sum.fail رو ایجاد می کنه ! (اسم این اسکریپت I.do هست)
خب یک اسکریپت دیگه هست به نام cheking که سه تا آرگومان داره اولی (ترتیبش مهمه) md5sum.org و دومی md5sum.fail و سومی یک لینک مستقیم از اون فایله هست خروجیه این اسکریپت چندتا فایل هستند که با x شروع میشوند (در محل جاری ذخیره میشوند) که خب باید این فایلها رو (که درواقع همان قسمتهای خراب هستند) رو توی پوشه ای که I.do درست کرده (در هنگام خروج اسم پوشه رو می نویسه-یک عدد چند رقمی است)کپی میکنیم و فایل md5sum.fail رو هم پاک میکنیم بعد با دستور زیر همه رو توی یک فایل میریزیم اکنون فایل تعمیر شده!
cat `ls |sort -h` > file.ok
یکخورده پیچیده گفتم ولی کار خیلی راحتیه (از این راخت تر/اتوماتیک تر هم می شه ولی چون من به تفکر خلاق اهمیت می دم بقیش رو می زارم به عهده ی خودتون!) اگر جاییش گنگ بود بگید تا یک طور دیگه بگم! البته اسکریپت پیچیدهای نیست اگر بخونید متوجه می شید
به امید مفید بودن!نه به تضمین مفید بودن!
http://negarsoft.persiangig.com/repair.tar