Bash + rclone · OneDrive ↔ Google Drive · راهنمای عملیاتی متنباز
انتقال ابری صرفاً برای کپی با Bash و rclone
rclone از قبل صفحهبندی فضای ابری، تلاشهای مجدد، انتقالهای قابل ازسرگیری و هشهای ارائهدهندگان را میشناسد. وظیفهٔ مهندسی این است که این قابلیتهای پایه در یک رویهٔ عملیاتی آگاه از ظرفیت و با توقف ایمن در صورت خطا قرار گیرند.
بهروزرسانیشده ; 20 دقیقه زمان مطالعه.
پاسخ کوتاه
FileArk برای مهاجرتهای بزرگ یا بدون نظارت، گزینهٔ مدیریتشده و سادهتری است: انتقال را آنلاین اجرا میکند، با بارهای کاری چندترابایتی آزمایش شده است و هر نتیجه را پیش از تکمیل بررسی میکند. برای اپراتورهایی که مسیر دادهٔ تحت کنترل پوسته میخواهند، این اسکریپت پوششی Bash با مجوز MIT دستههایی با اندازهٔ محدود را از طریق مرحلهبندی محلی کپی میکند، هر دو مرحله را بایتبهبایت راستیآزمایی میکند و هرگز فایلهای مبدأ را حذف نمیکند.
چرا بهجای بازسازی کلاینت هر ارائهدهنده، rclone را در یک اسکریپت پوششی قرار دهیم؟
rclone برای گردشکار پوسته، انتزاعی بالغ از ارائهدهندگان، پیکربندی OAuth، صفحهبندی، سازوکار تلاش مجدد، انتقالهای قابل ازسرگیری، کنترل همزمانی، فرمانهای فهرستبرداری و فرمانهای راستیآزمایی فراهم میکند. بنابراین، اسکریپت پوششی میتواند بر اصول ثابت مهاجرت تمرکز کند: دستورهای صرفاً کپی، مرحلهبندی محدود، ذخیرههای ظرفیت، فهرستهای قطعی فایلها و پیشرفت پایدار.
با این حال، کار خودکار نمیشود. مسئولیت پیکربندی راهدورها، امنیت توکنها، پایداری شبکه، نظارت بر فرایند، دیسک محلی، گزارشها، محدودیتهای ارائهدهنده، بررسی اشیای ناموفق و پذیرش مقصد همچنان بر عهدهٔ اپراتور است. FileArk برای کاربرانی ساخته شده است که میخواهند این رویه بهصورت یک گردشکار آنلاین مدیریتشده اجرا شود، نه روی رایانه یا سرور خودشان.
اسکریپت صراحتاً هرگز فرمانهای rclone move، sync، delete، purge یا rmdirs را فراخوانی نمیکند. برای شناسایی از lsf و about، برای هر مرحله از copy و برای راستیآزمایی کامل بایتها از check --download استفاده میکند. تنها مورد حذفشده، فایلی راستیآزماییشده از پوشهٔ مرحلهبندی محلی است.
دانلود نسخهٔ Bash و مجوز MIT
دانلود برنامهٔ انتقال Bash و rclone
یک اسکریپت پوششی صرفاً برای کپی، با محدودیت دستهها، ذخیرهٔ فضای محلی و مقصد، راستیآزمایی کامل بایتها، نقاط بررسی، کنترل تلاش مجدد و نسخهٔ نمایشی بدون نیاز به شبکه.fileark-cloud-transfer.sh · Bash 4+ · rclone · jq · مجوز MIT
مجوز MIT را دانلود کنید
اطلاعیهٔ مجوز برای هر دو اسکریپت انتقال دستی FileArk.LICENSE-fileark-cloud-transfer.txt · MIT · متن ساده
دموی اجرایی بدون شبکه را اجرا کنید

اجرای نسخهٔ نمایشی حتی پیش از نصب rclone یا jq ایمن است، زیرا تجزیهٔ آرگومانها پیش از بررسی وابستگیها پایان مییابد. خروجی، عملیات تخریبی ممنوع را نام میبرد، هر دو ذخیرهٔ ظرفیت را نشان میدهد و با تعداد حذفها از مبدأ پایان مییابد.
chmod +x fileark-cloud-transfer.sh
bash -n fileark-cloud-transfer.sh
./fileark-cloud-transfer.sh --demo
./fileark-cloud-transfer.sh --helpوابستگیهای اجرایی را نصب و پیکربندی کنید
یک نسخهٔ بهروز rclone را طبق دستورالعملهای رسمی آن نصب کنید و jq را از مدیر بستهٔ سیستمعامل خود نصب کنید. Bash 4 یا جدیدتر لازم است، زیرا اسکریپت پوششی از مدیریت سختگیرانهٔ خطا و عبارتهای شرطی مدرن استفاده میکند.
فرمان rclone config را اجرا کنید و دو راهدور با نامهای مستقل بسازید؛ برای مثال onedrive: و gdrive:. هرگاه سیاستها یا محدودیت نرخ به برنامههای اختصاصی OAuth نیاز دارند، شناسه و رمز کلاینت ارائهدهندهٔ خود را وارد کنید. rclone توکنهای OAuth را در فایل پیکربندی خود ذخیره میکند؛ با مجوزهای محدودکننده از آن فایل محافظت کنید و هرگز آن را همراه اسکریپت بستهبندی نکنید.
پیش از اجرای اسکریپت پوششی، هر راهدور را با یک فهرستگیری فقطخواندنی و فرمان سهمیه تأیید کنید. وقتی فقط یک زیردرخت در محدوده قرار دارد، از مسیرهایی مانند onedrive:Department/Archive استفاده کنید.
rclone version
rclone config
rclone lsd onedrive:
rclone lsd gdrive:
rclone about onedrive: --json | jq
rclone about gdrive: --json | jqپیش از جابهجایی بایتها، یک فهرست قطعی تثبیت کنید
اسکریپت پوششی، rclone lsf را بهصورت بازگشتی و با جداکنندهٔ صریح تب و قالب sp اجرا میکند تا ابتدا اندازه و سپس مسیر تولید شود. این اسکریپت عددیبودن هر اندازه و نسبیبودن هر مسیر را اعتبارسنجی میکند، سپس مسیرهای از قبل موجود در نقطهٔ بررسی تأییدشده را کنار میگذارد.
نسخهٔ Bash نام فایلهای دارای تب، بازگشت به ابتدای خط یا نویسهٔ خط جدید را رد میکند، زیرا فهرستهای --files-from-raw که با خط جدید جدا شدهاند نمیتوانند آنها را بدون ابهام نمایش دهند. در صورت وجود چنین نامهایی، از نسخهٔ Python یا قالبی ویژه برای فهرستبرداری استفاده کنید.
نقطهٔ بررسی مبتنی بر مسیر عمداً ساده و قابل بازرسی است. این روش فرض میکند مسیرهای مبدأ در طول اجرا ثابت میمانند. در صورت امکان نوشتن در مبدأ را متوقف کنید؛ یا اگر انتظار تغییرات همزمان میرود، فهرست را دوباره ایجاد و تطبیق دهید.
rclone lsf "$SOURCE" \
--recursive \
--files-only \
--format "sp" \
--separator