Rclone یک جایگزین کارآمد برای rsync است. این ابزار برای ارتباط با فضاهای ابری سازگار با S3 مناسب است و در مهاجرت و انتقال داده‌ها از یک صندوقچه یا Bucket به باکت دیگر به کمک شما می‌آید؛ حتا اگر باکت‌ها در سرویس‌دهنده‌های متفاوت باشند.

به کمک ابزار متن باز Rclone، می‌توانید از داده‌های قرار گرفته روی یک سرور یا فضای ابری بک آپ تهیه کرده و آن را روی یک سرور، فضای ذخیره‌سازی محلی یا فضای ابری دیگر ذخیره کنید. این نرم‌افزار امکانات متنوعی  مانند مدیریت باکت‌ها، Mount کردن درایوهای مجازی از طریق یک باکت، مدیریت فایل‌ها و پیدا کردن فایل‌های تکراری را در کنار بک آپ گیری در اختیار شما قرار می‌دهد.

با اضافه شدن فضای ابری آروان به لیست ارایه‌دهندگان ابزار Rclone، استفاده از آن برای کاربران فضای ابری آروان بسیار ساده و بهینه خواهد بود.

در این راهنما به معرفی و بررسی شیوه‌ی انتقال داده با ابزار Rclone می‌پردازیم.

نصب Rclone

با توجه به سیستم‌عامل خود نیاز است تا مراحل متفاوتی را طی کنید.

نصب Rclone روی سیستم‌عامل ویندوز

برای نصب این نرم‌افزار روی سیستم‌عامل ویندوز، کافی است آن را از وب‌سایت Rclone دریافت کنید. در ادامه باید فایل دانلود شده را از مسیر مربوط به آن و از طریق CLI اجرا کنید.

نصب Rclone روی Linux

برای نصب Rclone روی سیستم‌عامل‌های Unix-based نیاز است تا مراحل زیر را طی کنید:

  • با کاربر root به سرور یا سیستم خود متصل شوید.
  • APT را آپدیت کنید:
apt update && apt upgrade -y
  • به ترتیب با اجرای دستورات زیر، Rclone را دریافت و نصب کنید:
git clone https://github.com/rclone/rclone.git
cd rclone
go build

پیش از اجرای این دستورها باید git و go1.17 را روی سیستم‌عامل خود نصب کنید. برای این کار دستورهای زیر را اجرا کنید:

apt-get install git
tar -C /usr/local -xzf go1.17.5.linux-amd64.tar.gz
wget https://dl.google.com/go/go1.17.7.linux-amd64.tar.gz
sudo tar -xvf go1.17.7.linux-amd64.tar.gz
sudo mv go /usr/local
export GOROOT=/usr/local/go
export GOPATH=$HOME/Projects/Proj1
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
  • پس از نصب rclone برای بررسی نسخه و درستی نصب آن دستور زیر را وارد کنید:
rclone version/.

برای راحتی در اجرای دستورات می‌توانید برای rclone/. یک alias به rclone در bashrc./~ تعریف کنید.

پیکربندی و تنظیمات Rclone

  • با استفاده از دستور زیر، شروع به تنظیم Rclone کنید:
 rclone config

اگر تا کنون Rclone را روی سیستم خود تنظیم نکرده باشید، خروجی زیر را مشاهده خواهید کرد:

اگر پیش از این تنظیماتی برای Rclone انجام داده باشید، خروجی متفاوتی را مشاهده خواهید کرد ولی در مراحل بعدی پیکربندی جدید تاثیری نخواهد داشت.

برای ایجاد remote یا پیکربندی جدید n را وارد کنید. سپس از شما درخواست می‌شود یک نام دلخواه وارد کنید. ما در اینجا ArvanCloud را انتخاب کردیم.

خروجی زیر نمایش داده خواهد شد:

  • S3 را وارد کنید و Enter بزنید. خروجی به این شکل خواهد بود:

  • ArvanCloud را وارد کنید و Enter بزنید تا ابر آروان را به عنوان S3 Provider را تایید کنید. خروجی زیر نمایش داده خواهد شد:

  • عبارت False را وارد کرده و برای تایید Enter بزنید تا در مرحله‌ی بعد credentials را وارد کنید. خروجی مشابه تصویر زیر در این مرحله به شما نمایش دادهمی‌شود:

  • Access Key خود را از پنل کپی کرده و وارد کنید.

  • Secret Key خود را از پنل کپی کرده و وارد کنید.

  • عدد 1 را برای آسیاتک و 2 را برای شهریار وارد کنید وEnter بزنید.

  • مقدار Endpoint را از میان تبریز (2) و تهران (1) وارد کنید. خروجی مانند تصویر خواهد بود:

  • ACL موردنظر حود را انتخاب و آن را وارد کنید. در این‌جا، برای نمونه private را انتخاب می‌کنیم. سپس n را وارد کنید تا خلاصه‌ای از کانفیگ به شما نمایش داده شود:

  • y را وارد کنید تا پیکربندی تایید شود. سپس خروجی زیر را مشاهده خواهید کرد:

  • در نهایت q را وارد کنید تا از پیکربندی خارج شوید.

نکته: اگر می‌خواهید داده‌ها را از یک باکت در پرووایدر دیگر به پرووایدری که به‌تازگی راه‌اندازی کرده‌اید، انتقال دهید، مراحل را دوباره تکرار کنید تا یک remote جدید راه‌اندازی کنید. می‌توانید به سادگی پرووایدر مورد نظرتان را در مراحل 2 و 3 انتخاب کنید.

انتقال داده‌ها

دو دستور برای انتقال داده بین دو باکت وجود دارد:

  • دستور copy داده‌ها را از مبدا در مقصد کپی می‌کند:
<rclone copy --progress <SOURCE_BACKEND>:<SOURCE_PATH> <DEST_BACKEND>:<DEST_PATH

به عنوان نمونه دستور زیر داده‌ها را از باکت my-first-bucket در ریموت ArvanCloud که پیش‌تر تنظیم کردیم در باکت my-second-bucket در همان remote کپی می‌کند. فلگ –progress این امکان را می‌دهد که در جریان پیشرفت این فرآیند قرار بگیریم.

rclone copy --progress ArvanCloud:my-first-bucket ArvanCloud:my-second-bucket
  • دستور sync داده‌ها را از مبدا در مقصد کپی می‌کند با این تفاوت که objectهایی که در باکت مقصد وجود دارند اما در باکت مبدا نیستند را حذف می‌کند:
<rclone sync --progress <SOURCE_BACKEND>:<SOURCE_PATH> <DEST_BACKEND>:<DEST_PATH

به عنوان نمونه دستور زیر داده‌ها را از باکت my-first-bucket در ریموت ArvanCloud که پیش‌تر تنظیم کردیم در باکت my-third-bucket در ریموت AmazonAws کپی می‌کند و داده‌هایی که در my-third-bucket هستند ولی در my-first-bucket نیستند را حذف می‌کند.

rclone sync --progress ArvanCloud:my-first-bucket AmazonAws:my-third-bucket

برای اطلاعات و بررسی بیش‌تر دستورات موجود می‌توانید به مستندات رسمی Rclone مراجعه کنید.