در این آموزش توضیح میدهیم که چگونه BitTorrent Sync را نصب کنیم و از آن برای پشتیبان گیری اتوماتیک سرور گنو/لینوکس استفاده کنیم.

پشتیبان گیری از لینوکس سرور با BitTorrent Sync

در این آموزش توضیح میدهیم که چگونه BitTorrent Sync را نصب کنیم و از آن برای پشتیبان گیری اتوماتیک سرور گنو/لینوکس استفاده کنیم.BitTorrent Sync با استفاده از پروتکل BitTorrent به شما این امکان را میدهد که محتوا را بین سرورها همگام سازی کنید.همچنین بصورت مستقیم میتوانید بین کامپیوتر و گوشی هوشمند خود این همگام سازی را انجام دهید بدون اینکه نیاز باشد محتوا را به سرور third-party ارسال کنید.انتقال محتوا توسط BitTorrent Sync با استفاده از رمزنگاری 256bit AES انجام میشود.


برای همگام سازی حداقل میبایست دو ماشین آنلاین وجود داشته باشد، قطعاً شما نمیخواهید کامپیوتر خود را تمام وقت روشن بزارید، اما سرور شرایط متفاوتی دارد و معمولا تمام وقت روشن و به اینترنت متصل میباشد پس، استفاده از BitTorrent Sync برای پشتیبان گیری ایده خیلی خوبی خواهد بود.


سناریوی همگام سازی :

1 – شما دو سرور با سیستم عامل گنو/لینوکس دارید که بصورت 24*7 به اینترنت متصل هستند در نتیجه میتوانید با استفاده از BitTorrent Sync بصورت اتوماتیک همگام سازی را بین آنها داشته باشید.


2 – شما یک سرور با سیستم عامل گنو/لینوکس دارید که میتوانید همگام سازی را با کامپیوتر خودتان داشته باشید.زمانی که کامپیوتر خود را روشن میکنید بصورت اتوماتیک محتوای جدید را از سرور دریافت میکند.


3 – شما یک Raspberry Pi دارید که میتوانید آن را 24 ساعت روشن بزارید و همگام سازی را بین سرور و RPi انجام دهید.


پشتیبان گیری از لینوکس سرور بصورت Master and Slave

اگر شما دو سرور با سیستم عامل گنو/لینوکس داشته باشید میتوانید یکی از آنها را در نقش Master و دیگری را در نقش Slave پیکربندی نمایید.این به این معنی است که شما محتوای سایت خود را بر روی سرور Master بروزرسانی میکنید و سرور Slave بصورت فقط خواندنی محتوا را از دایرکتوری سرور Master میخواند و همگام سازی را انجام میدهد بدون اینکه بتواند چیزی به محتوا اضافه یا کم کند.


سرور Slave صرفا به عنوان پشتیبان گیری مورد استفاده قرار میگیرد.


نصب BitTorrent Sync بر روی سرور Master

شما میتوانید از روش زیر برای نصب BitTorrent بر روی هر توزیعی از لینوکس استفاده نمایید.


با استفاده از SSH به سرور خود لاگین کنید و آخرین ورژن BitTorrent Sync را با استفاده از لینک زیر دانلود کنید.

64-bit :

wget https://download-cdn.getsync.com/stable/linux-x64/BitTorrent-Sync_x64.tar.gz

32-bit :

wget https://download-cdn.getsync.com/stable/linux-i386/BitTorrent-Sync_i386.tar.gz

با استفاده از دستور زیر فایل دانلودی را Extract نمایید :


tar xvf BitTorrent-Sync_*.tar.gz

حالا یک فایل اجرایی جدید بنام btsync در دایرکتوری که در آن کار میکنید Extract شده و آماده اجرا میباشد.شما میتوانید BitTorrent را با استفاده از دستور زیر start کنید :


./btsync

بصورت پیش فرض قابلیت WebUI فقط در Localhost قابل دسترس است (localhost:8888). برای اینکه به WebUI در شبکه داخلی و یا اینترنت دسترسی داشته باشیم btsync را با دستور زیر start کنید :


./btsync –webui.listen 0.0.0.0:8888

حالا میتوانید با وارد کردن آدرس زیر در مرورگر خود به WebUI دسترسی داشته باشید.(your-server-ip را با آدرس سرور خود عوض کنید)


Your-server-ip:8888

زمانی که برای اولین بار در WebUI لاگین میکنید از شما میخواهد که حساب کاربری ایجاد کنید.ما در حال حاظر از http استفاده میکنیم و میدانیم که امن نیست.پس قبل از اینکه نام کاربری و پسورد را ایجاد نماییم، ما باید SSL Certification را روی سرور نصب نماییم.

من از sync.domain.com به عنوان دامین برای دسترسی به WebUI استفاده کردم.پس SSL certificate را برای دامین sync.domain.com اعمال کردم و شما نیاز دارید که SSL certificate را برای دامین خود اعمال نمایید.


راه اندازی Nginx Reverse Proxy :

حالا ما Nginx را به عنوان Revers Proxy برای استفاده سرویس BitTorrent Sync اندازی میکنیم.


ساخت Nginx server block file :


sudo nano /etc/nginx/conf.d/sync.domain.com.conf

متن زیر را به این فایل منتقل نمایید : 

server {

   listen 80;

   server_name sync.domain.com;

   return 301 https://sync.domain.com$request_uri;

}

server {

   listen 443 ssl;

   server_name sync.domain.com;


   ssl_protocols TLSv1.1 TLSv1.2;

   ssl_certificate /etc/letsencrypt/live/sync.domain.com/fullchain.pem;

   ssl_certificate_key /etc/letsencrypt/live/sync.domain.comm/privkey.pem;

   access_log /var/log/nginx/sync.domain.com.log;

   location / {

   proxy_pass http://127.0.0.1:8888;

   }

}

فایل را ذخیره کنید و ببندید.این تغییرات باعث میشود کلیه ترافیک از HTTP به HTPPS تغییر کند و سرور فقط ترافیک رمزنگاری TLSv1.1 و TLSv1.2 را قبول نماید. زمانی که sync.domain.com را در مرورگر خود تایپ میکنید Nginx ترافیک را به 127.0.0.1:8888 ارسال میکند.


سرویس Nginx را با استفاده از دستور زیر reload نماییذ :


sudo service nginx reload

or

sudo systemctl reload nginx

حالا میتوانید با وارد کردن sync.domain.com در مرورگر خود به WebUI دسترسی داشته باشید و اقدام به ساخت نام کاربری و رمز عبور نمایید.



بعد از اینکه نام کاربری و رمز عبور را ایجاد کردید و به صفحه WebUI وارد شدید میبایست دایرکتوری را برای همگام سازی در سرور Master ایجاد نمایید.اما برای اضافه کردن دایرکتوری به سرور برای همگام سازی میبایست کاربری که پروسه btsync را اجرا میکند دسترسی write روی آن دایرکتوری را داشته باشد.


شما میخواهید دایرکتوری اصلی سرور مثل /usr/share/nginx/ را همگام سازی نمایید، این دایرکتوری در مالکیت کاربر www-data و گروه www-data میباشد، و دسترسی 755 تنظیم شده لذا فقط کاربر www-data اجازه نوشتن دارد.


drwxr-xr-x 7 www-data www-data 4096 Mar 9 21:58 nginx

به منظور اینکه به کاربر www-data و کاربری که btsync را اجرا میکند دسترسی write بدهیم میتوانیم از دستور setfacl برای اعمال دسترسی write به کاربری که btsync را اجرا میکند ، استفاده نماییم.


sudo setfacl -R -m “u:<username>:rwx” /usr/share/nginx

با این روش هر دو کاربر www-data و کاربری که btsync را اجرا میکند دسترسی write بر روی دایرکتوری اصلی web دارند.حالا شما میتوانید دایرکتوری اصلی web را به همگام سازی اضافه نمایید.btsync برای این دایرکتوری لینک اشتراک گذاری، secret key ، QR Code را ایجاد خواهد کرد.



تنظیمات Slave Server :


این فرایند برای سرور salve تقریبا مشابه سرور master میباشد و شما میبایست btsync را نصب کنید، سپس free SSL certificate دیگری را بسازید و Nginx reverse proxy را نصب و راه اندازی نمایی.سپس حساب کاربری در WebUI را ایجاد نمایید.


تنها تفاوت این است که بعد از ورود به حساب کاربری WebUI روی فلش سمت چپ پنل کلیک نمایید و از منوی کشویی باز شده روی Enter a key or link کلیک نمایید.



سپس وارد WebUI سرور Master شوید و روی دکمه Share کلیک نمایید، سپس read only key رو کپی کرده و در WebUI سرور Slave وارد کنید.



بعد از آن شما باید در سرور Slave دایرکتوری را برای ذخیره فایل های دریافتی از سرور Master انتخاب نمایید.دو کلید


read & write و read only وجود دارد که ما کلید read only را انتخاب کردیم چون نمیخواهیم Slave تغییری روی محتوای Master ایجاد کند.


حالا دو سرور روند همگام سازی را آغاز می کنند.


پشتیبان گیری از لینوکس سرور با استفاده از کامپیوتر شخصی

اگر بر روی کامپیوتر خود سیستم عامل گنو/لینوکس دارید مراحل بالا را برای نصب BitTorrent Sync دنبال نمایید بعد از تصب میتوانید btsync را اجرا کنید و شروع به همگام سازی نمایید، شما مجبور نیستید که Nginx reverse proxy و SSL certificate را بر روی کاپیوتر خود نصب نمایید.


پشتیبان گیری از لینوکس سرور با استفاده Raspberry Pi

BitTorrent Sync ورژن مخصوص ARM نیز دارد پس شما میبایست فایل نصبی مخصوص ARM را دانلود و سپس اکسترکت کنید.


1

wget https://download-cdn.getsync.com/stable/linux-arm/BitTorrent-Sync_arm.tar.gz

برای دسترسی به WebUI در شبکه LAN و یا اینترنت دستور زیر را اجرا نمایید :


1

./btsync –webui.listen 0.0.0.0:8888

در این حالت نیز نیازی به نصب Nginx reverse proxy و SSL certificate روی RPi ندارید.


Autostart

برای اینکه اجازه دهیم BitTorrent Sync بعد از بوت شدن سیستم بصورت خودکار شروع به کار نماید cron job تعریف میکنیم.


1

crontab -e

سپس خط زیر را به آن اضافه میکنیم.


1

@reboot /path/to/btsync –webui.listen 0.0.0.0:8888

فراموش نکنید که path/to/btsync را با مسیر واقعی خود جایگزین نمایید.اگر btsync نیاز دارد که تنها روی 127.0.0.1 شنود کند قسمت0.0.0.0:8888 را حذف نمایید.


پشتیبان گیری رو هیچوقت فراموش نکنید!