تقسیم یک فایل به چند بخش با dd

 

دیروز یه فایل تقریبا بزرگ در حدود 250GiB روی یک datastore متصل به سرور ESXi داشتیم که باید به یک سرور لینوکس دیگه منتقل میشد. امکان اتصال storage به سرور وجود نداشت، وضعیت شبکه هم بسیار کند و ناپایدار بود. راحترین راه که به ذهن رسید انتقال با scp از روی esxi به سرور بود ولی اگر شبکه در موقع انتقال قطع می شد یا اختلال داشت باید تمام مراحل را از اول انجام می‌دادیم پس فایل را به چند قسمت تقسیم کردیم و انتقال دادیم که در صورت خرابی فقط مجبور به انتقال یک بخش از فایل باشیم.

حجم فایل در حدود 250GiB بود، اون را به بخش‌های 50GiB تقسیم می کنیم.

 

dd if=/vmfs/volumes/ds-04/xyz.img bs=1MB count=51200  | ssh user@192.168.66.6 dd of=/home/user/xyz.img.pt01

 

اینجا چون اندازه هر بلاک را 1MiB در نظر گرفتیم و به 50 گیگابایت ابتدای فایل نیاز داشتیم تعداد 51200 بلاک اول را جدا کردیم. و خروجی را با دستور ssh مستقیما به سرور remote ارسال کردیم تا فایل در هنگام تقسیم بر روی دیسک مقصد نوشته شود.

برای بخش بعدی می نویسیم:

 

dd if=/vmfs/volumes/ds-04/xyz.img bs=1MB count=51200  skip=51200 | ssh user@192.168.66.6 dd of=/home/user/xyz.img.pt02

 

که با سوئیچ skip از 51200 بلاک اول صرف نظر کردیم. و همینطور تعداد بلاک‌ها را افزایش می‌دهیم تا به انتهای فایل برسیم:

 

dd if=/vmfs/volumes/ds-04/xyz.img bs=1MB count=51200  skip=102400 | ssh user@192.168.66.6 dd of=/home/user/xyz.img.pt03

dd if=/vmfs/volumes/ds-04/xyz.img bs=1MB count=51200  skip=153600 | ssh user@192.168.66.6 dd of=/home/user/xyz.img.pt04

dd if=/vmfs/volumes/ds-04/xyz.img bs=1MB count=51200  skip=204800 | ssh user@192.168.66.6 dd of=/home/user/xyz.img.pt05

 

حالا بر روی دیسک مقصد پنج فایل داریم که باید به یک فایل تبدیل بشوند برای این کار این دستور را می نویسیم:

 

cat /home/user/xyz.img.pt0* | dd of=/home/user/xyz.img

 

این ساده‌ترین راهی بود که با دستورات عادی به ذهن من رسید، مسلما دستورات و روش‌های دیگه ای هم وجود دارند 🙂

 

برچسب خورده : , , , , , . Bookmark the پیوند یکتا.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.