مرکز آموزش

انتقال اطلاعات سرور های لینوکسی

در زمان خرید سرور جدید یکی از بزرگترین دغدغه ها انتقال داده ها بین دو سرور قدیمی و جدید می باشد، این مشکل زمانی چالش برانگیزتر می شود که سیستم عامل این سرورها لینوکس باشند. در این آموزش قصد داریم تا چند دستور ساده برای انتقال داده ها بین دو سرور لینوکس بیس شرح دهیم. توجه داشته باشید که انتخاب هریک از این دستورات کاملاً به سناریوی انتقال شما بستگی دارد.

 

 

 

1- استفاده از دستور rsync :

 

یکی از کاربردهای این دستور به جهت کپی برداری و یا بک آپ گیری فایل و فلدرها در مسیری در سیستم لوکال و یا یک سیستم ریموت (با سیستم عامل لینوکس یا یونیکس) استفاده می شود. امنیت، سرعت بالا، مصرف پهنای باند کم و عدم نیاز به هیچگونه پیش نیازی (در سرور مبداء و یا مقصد) از جمله قابلیت های این دستور می باشند.

 

هدف از توضیح این دستور در اینجا اعلام نحوه استفاده از آن به جهت انتقال داده ها از یک سرور به سروری جدید می باشد. در این سناریو سرور لینوکس قبلی را لوکال (local) و سرور جدید را ریموت (remote) در نظر می گیریم.

 

در ابتدا به سرور لوکال از طریق کاربری روت ssh بزنید و در آن کامند rsync را اجرا نمایید.

 

شکل کلی و مناسب برای عملیات انتقال صحیح و با کمترین حجم ممکن این دستور به صورت ذیل اعلام می گردد : 

(توجه داشته باشید که امکان استفاده از سوئیچ های دیگری به جزء مواردی که در نمونه ذیل اعلام شده نیز وجود دارد)

 

 

rsync -avz -e "ssh -p <port-number>" </local-path> root@<server-name>:/<remote-folder>

 

 

توضیح جزئیات دستور :

 

سوئیچ a کارهای ذیل را انجام می دهد :

 

-  رعایت کپی بصورت تو در تو

 

-  حفظ لینک ها (Symbolic Link )

 

-  حفظ  پرمیشن (Permission)

 

-  عدم تغییر زمان فایل مقصد با فایل اولیه

 

-  حفظ مشخصات مالکیت ( owner ، group)

 

سوئچ v به جهت نمایش شرح عملیات در هنگام اجرا می باشد.

سوئیچ z فشرده سازی را فعال می سازد (از این طریق پهنای باند کم تری مصرف می گردد)

سوئیچ e به جهت استفاده از SSH برای انتقال داده ها استفاده می شود.

 

نکته : در صورتیکه پورت SSH سرور ریموت، پورت پیش فرض SSH (یعنی 22) است می توانید به جای عبارت "ssh -p <port-number>" تنها عبارت ssh را وارد نمایید.

 

به جای عبارت <port-number> باید پورت SSH مرتبط با سرور مقصد را وارد نمایید.

به جای عبارت </local-path> باید مسیر فایل یا فلدر موجود در سرور لوکال را وارد نمایید.

به جای عبارت <server-name> آی پی یا نام سرور ریموت را وارد نمایید.

به جای عبارت <remote-folder> مسیری که می خواهید فایل یا فلدر مربوطه در سرور ریموت قرار گیرد را وارد نمایید.

 

نکته : برای مشاهده درصد پیشرفت فرآیند کپی برداری می توانید از سوئیچ progress قبل از عبارت –e استفاده نمایید. که شکل کلی دستور با این سوئیچ به صورت ذیل می باشد :

 

rsync -avz -progress -e "ssh -p <port-number>" </local-path> root@<server-name>:/<remote-folder>

 

 

 

بعداز وارد نمودن دستور سفارشی شده rsync (با توجه به اطلاعات مورد نظر خود) رمز عبور سرور ریموت از شما خواسته می شود لذا به جهت شروع اجرای عملیات انتقال رمز عبور کاربری روت مرتبط با سرور ریموت را وارد نمایید.

 

به جهت آگاهی هرچه بیشتر شما یک نمونه از دستور rsync سفارشی شده به شرح ذیل ارائه می گردد :

 

 

rsync -avz -progress -e "ssh -p <port-number>" </local-path> root@<server-name>:/<remote-folder> 

 

 

2- استفاده از دستور scp

 

از این دستور برای انتقال فایل یا فلدر از سرور لوکال (سرور مبداء) به سرور ریموت (مقصد) با استفاده از پروتکل ssh استفاده می شود. در این سناریو سرور لینوکس قبلی را لوکال (local) و سرور جدید را ریموت (remote) در نظر می گیریم.

 

شکل کلی و مناسب برای عملیات انتقال صحیح و با کمترین حجم ممکن این دستور به صورت ذیل اعلام می گردد :

(توجه داشته باشید که امکان استفاده از سوئیچ های دیگری به جزء مواردی که در نمونه ذیل اعلام شده نیز وجود دارد)

 

scp -Cpv -P <ssh-port-number> </local-path> <user>@<remote-server>:<remote-folder>

 

 

توضیح جزئیات دستور :

 

سوئیچ C برای فعالسازی عملیات فشرده سازی استفاده می شود. (دقت داشته باشید که از حرف بزرگ استفاده شده است)

سوئیچ p به جهت نمایش زمان اصلاح، دسترسی، سرعت ارتباط و همچنین درصد پییشرفت عملیات می باشد.

سوئیچ v برای نمایش اطلاعات انتقال در صفحه استفاده می شود.

سوئیچ P به جهت مشخص کردن پورت سفارشی ssh استفاده می شود. در صورتیکه در سرور ریموت از پورت پیش فرض ssh، یعنی 22، استفاده شده است نیازی به استفاده از این سوئیچ نیست. (دقت داشته باشید که از حرف بزرگ استفاده شده است)

به جای عبارت <port-number> باید پورت SSH مرتبط با سرور مقصد را وارد نمایید.

به جای عبارت </local-path> باید مسیر فایل یا فلدر موجود در سرور لوکال را وارد نمایید.

به جای عبارت <user> نام کاربری که برای برقراری ارتباط ssh با سرور ریموت استفاده می نمایید را وارد نمایید.

به جای عبارت <server-name> آی پی یا نام سرور ریموت را وارد نمایید.

به جای عبارت <remote-folder> مسیری که می خواهید فایل یا فلدر مربوطه در سرور ریموت قرار گیرد را وارد نمایید.

 

بعداز وارد نمودن دستور سفارشی شده scp (با توجه به اطلاعات مورد نظر خود) رمز عبور سرور ریموت از شما خواسته می شود لذا به جهت شروع اجرای عملیات انتقال رمز عبور کاربری روت مرتبط با سرور ریموت را وارد نمایید.

 

به جهت آگاهی هرچه بیشتر شما یک نمونه از دستور scp سفارشی شده به شرح ذیل ارائه می گردد :

 

scp -Cpv -P 2233 /mnt/data/admin root@192.168.1.1:/mnt/newfolder/repository/

 

 

 

3- استفاده از دستور SFTP

 

از این دستور می توان برای انتقال داده بین دو سرور (مبداء و مقصد) استفاده نمود. برای انجام اینکار کافیست به سرور مقصد SSH زده و دستور ذیل را، بعد از سفارشی کردن آن با توجه به توضیح دستور، وارد نمایید :

 

sftp IP

 

 

توضیح : به جای عبارت IP می باید آی پی سرور مبداء خود را وارد نمایید. دقت داشته باشید که دستور sftp به صورت معمول از کاربری روت استفاده می نماید لذا بعداز وارد نمودن دستور بالا تنها کافیست رمز عبور کاربری روت سرور مبداء خود را وارد نمایید.

همچنین در صورتیکه تنها دسترسی FTP با نام کاربری و رمز عبور خاصی را به سرور مبداء دارید کافیست به جای دستور sftp از دستور ftp استفاده نمایید (دقت داشته باشید که در این حالت باید سرویس FTP در سرویس مبداء شما نصب و اجرا شده باشد). در این حالت بعداز وارد نمودن این دستور می باید نام کاربری و رمز عبور کاربری FTP مربوطه را وارد نمایید.

 

بعداز برقراری ارتباط کافیست به مسیر فایل یا فلدری که قرار است آن را به سرور مقصد انتقال دهید رفته و در انتها دستور get را به همراه نام فایل یا فلدر مورد نظر خود وارد نمایید.

 

به طور مثال نیاز دارید تا فایل test.txt را از مسیر /mnt/testfolder به سرور مقصد خود انتقال دهید لذا بعداز برقراری ارتباط ftp یا sftp به سرور مبداء کافیست دستور ذیل را وارد نموده

 

cd /mnt/testfolder

 

 

و در انتها دستور ذیل را وارد نمایید :

 

get test.txt

 

 

4- استفاده از دستور wget

 

از این دستور زمانی استفاده می شود که قرار است فایل مورد نظر خود را در مسیری قابل دستیابی از طریق پروتکل http در سرور مبداء خود قرار داده و در سرور مقصد مربوطه کامند wget را به همراه آدرس URL فایل مربوطه وارد نمایید. (دقت داشته باشید که در این حالت سرویس وب باید در سرور مبداء نصب و اجرا شده باشد)

 

به طور مثال فایل زیپی به نام test.zip که از طریق آدرس http://yourdomain.com/test.zip در سرور مبداء شما قابل دستیابی می باشد، قرار است به سرور مقصد انتقال یابد. در این حالت کافیست ابتدا به سرور مقصد ssh زده و در مسیر مورد نظر خود دستور ذیل را اجرا نمایید :

 

wget http://yourdomain.com/test.zip

 

  • سرور, لینوکس, لینوکسی, دبیان, انتقال, اطلاعات, FTP, SFTP, SSH, ftp, server, اتصال به سرور, Terminal, PuTTY, vps, vds, hetzner
  • 1 کاربر این را مفید یافتند
آیا این پاسخ به شما کمک کرد؟

مقالات مربوطه

CageFS چیست:

  ما در این مقاله به شما همراهان عزیز CageFS چیست و ویژگی های آن را آموزش می دهیم. ما را همراهی...

آموزش اضافه کردن یوزر جدید به Ubuntu

گونگی افزودن و حذف نام و گروه کاربری یکی از اساسی ترین مواردی است که در هنگام ایجاد یک سرور...

داکر چیست؟

در واقع داکر (Docker) یک پلتفرم متن باز است که مبتنی بر سیستم‌عامل لینوکس راه‌اندازی شده است؛ و...

اتصال دامنه به سرور ( سیستم عامل Ubuntu )

در این آموزش میخواهیم یک دامنه را به یک سرور مجازی متصل کنیم. فرض ما بر این است که از هیچ پنلی...

اموزش نصب lamp

با نام و یاد خدا با اموزش نصب LAMP  بر روی سرور با سیستم عامل ubuntu در خدمت شما هستیم برای نصب...

طراحی و کدنویسی توسط : وهاب آنلاین