ادامه انتقال فایلهای بزرگ و بررسی checksum بعد از قطع شدن scp
انتقال فایلهای حجیم از لوکال به سرور با استفاده از کامند scp بسیار رایج است. با این حال، اگر در حین انتقال ارتباط شبکهی شما قطع شود، فرآیند آپلود ناتمام میماند و در اجرای مجدد کامند scp، انتقال فایل از ابتدا آغاز خواهد شد. از آنجا که کامند scp به صورت پیشفرض قابلیت ادامه دادن انتقال فایل ناقص را در خود ندارد، لازم است از ابزار مناسبتری استفاده شود. در این نوشته، روش ادامه دادن انتقال فایلهای ناقص و همچنین بررسی صحت فایل منتقلشده با استفاده از checksum توضیح داده میشود.
روش ادامه دادن انتقال فایلهای بزرگ و بررسی صحت انتقال کامل آن با checksum بعد از قطع شدن کامند scp
در صورتی که انتقال یک فایل بزرگ با کامند scp متوقف شود، فایلی ناقص روی سرور ایجاد میشود. اجرای مجدد دستور scp باعث ارسال دوباره کل فایل شما خواهد شد و بخشهای قبلا منتقلشده قابل استفاده نخواهند بود. این موضوع بهویژه در فایلهای حجیم منجر به اتلاف زمان و پهنای باند میشود. ابزار rsync که بر بستر SSH شما کار میکند، قابلیت ادامه انتقال فایلهای ناقص را در سیستم در اختیار شما قرار میدهد. در صورتی که بخشی از فایل قبلا روی سرور وجود داشته باشد، کامند rsync تنها قسمتهای باقیمانده را منتقل میکند.
rsync -av --partial --progress bigfile.iso user@server:/path/to/destination/
توضیح گزینهها:
- a برای حفظ ساختار و مشخصات فایل.
- v برای نمایش جزئیات عملیات.
- partial برای نگه داشتن فایل ناقص در مقصد.
- progress برای نمایش روند انتقال.
در صورت وجود فایل ناقص، این دستور تنها بخشهای منتقلنشده را بررسی و ارسال میکند.
بررسی صحت فایل با checksum
پس از اتمام انتقال، ضروری است که از یکسان بودن فایل مبدا و مقصد اطمینان حاصل شود. این کار با محاسبهی checksum امکانپذیر است. یکی از متداولترین الگوریتمها، الگوریتم sha256 است.
- روی سیستم مبدا: sha256sum bigfile.iso
- روی سرور مقصد: ssh user@server “sha256sum /path/to/destination/bigfile.iso”
اگر خروجی در هر دو دستور یکسان باشد، فایل بدون خطا منتقل شده است.
در انتقال فایلهای بزرگ، استفاده از دستور scp در صورت قطع ارتباط میتواند مشکلساز شود. بهرهگیری از کامند rsync به عنوان جایگزین، امکان ادامه انتقال فایلهای ناقص را فراهم میکند و با بررسی کامند checksum میتوان از صحت و کامل بودن فایل منتقلشده اطمینان یافت. این روش، راهکاری ساده و قابل اتکا برای مدیریت انتقال فایل در شرایط ناپایدار شبکه است.
اگر نیاز به آموزشهای بیشتری در ارتباط با کامندهای لینوکس دارید در بخش نظرات نوشته برای ما بنویسید.



















آیا باید checksum را حتماً روی خود سرور بگیریم یا راه سادهتری هم هست؟
برای مقایسه دقیق، بهتر است checksum را هم روی مبدا و هم روی مقصد بگیرید تا مطمئن شوید دو فایل کاملاً یکسان هستند.
چرا از sha256 برای بررسی صحت فایل استفاده شده؟
چون sha256 بسیار قابل اعتماد است و احتمال خطا یا برخورد خروجی آن بسیار پایین است، بنابراین برای مقایسهی فایلها مناسبتر است.
بعد از انتقال فایل، چطور مطمئن بشیم فایل دقیقاً همون فایل اصلیه و خراب نشده؟
با محاسبه و مقایسهی checksum، مثلاً sha256sum در مبدا و مقصد، میتوان صحت فایل را بررسی کرد.
آیا –progress فقط برای نمایش وضعیت انتقاله یا روی عملکرد هم تأثیر داره؟
فقط برای نمایش روند انتقال است و بیشتر برای اطلاع از سرعت و مقدار داده منتقل شده استفاده میشود.
برای فایلهای خیلی بزرگ، چرا rsync بهتر از scp حساب میشه؟
چون scp در صورت قطع ارتباط از ابتدا شروع میکند، اما rsync امکان ادامه انتقال و جلوگیری از ارسال دوباره کل فایل را فراهم میکند.