نمایش نتایج: از شماره 1 تا 9 , از مجموع 9

موضوع: انتقال اطلاعات بین دو سرور لینوکس

  1. #1
    عضو جدید
    تاریخ عضویت
    Feb 2016
    محل سکونت
    تهران
    نوشته ها
    24
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    8
    تشکر شده در
    7 پست

    پیش فرض انتقال اطلاعات بین دو سرور لینوکس

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

    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 -e "ssh -p 2233" /mnt/data/admin root@192.168.1.1:/mnt/newfolder/repository/

    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/

    و ...

    برای مشاهده کامل این مقاله و امکان کپی برداری از دستورات ذکر شده می توانید به منبع اصلی آن در سایت پارس نافع به لینک ذیل مراجعه نمایید :

    ویرایش توسط h.rezazadeh : June 18th, 2016 در ساعت 15:44

  2. # ADS




     

  3. #2
    عضو جدید illusive_man آواتار ها
    تاریخ عضویت
    May 2016
    نوشته ها
    9
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    16
    تشکر شده در
    10 پست

    پیش فرض پاسخ : انتقال اطلاعات بین دو سرور لینوکس

    دستور rsync برای replicate کردن هست و نه انتقال. FTP هم صرفا زمانی کارایی داره که در هر دو سمت نصب و فعال باشه. از wget هم زمانی می توان استفاده کرد که مبدا دارای وب سرور باشه.

    به جای این دستورات استفاده از دستور scp پیشفرض لینوکس که از ssh برای ارتباط استفاده می کند در دسترس تر و راحت تر هست، ضمن اینکه سرعت انتقال خیلی خوبی هم ارایه میده.
    Telegram: illusiv3_m4n

  4. #3
    عضو انجمن
    تاریخ عضویت
    Mar 2012
    محل سکونت
    شیراز
    نوشته ها
    454
    تشکر تشکر کرده 
    257
    تشکر تشکر شده 
    216
    تشکر شده در
    167 پست

    پیش فرض پاسخ : انتقال اطلاعات بین دو سرور لینوکس

    سلام
    اگر بخواهیم یک دایرکتوری را از یک سرور لینوکس به سرور لینوکسی دیگر کپی کنیم و هر ثانیه این دایرکتوری در سرور جدید آپدیت شود (این دایرکتوری دائماً sync شود) ، باید چه کار کنیم؟
    با تشکر

  5. #4
    عضو جدید illusive_man آواتار ها
    تاریخ عضویت
    May 2016
    نوشته ها
    9
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    16
    تشکر شده در
    10 پست

    پیش فرض پاسخ : انتقال اطلاعات بین دو سرور لینوکس

    نقل قول نوشته اصلی توسط webhosts نمایش پست ها
    سلام
    اگر بخواهیم یک دایرکتوری را از یک سرور لینوکس به سرور لینوکسی دیگر کپی کنیم و هر ثانیه این دایرکتوری در سرور جدید آپدیت شود (این دایرکتوری دائماً sync شود) ، باید چه کار کنیم؟
    با تشکر
    شما می بایست از ابزاری همچون rsync استفاده کنید برای این منظور، که بصورت خودکار فایل های تغییر یافته را در مقصد آپدیت می نماید. البته امکان آپدیت در هر ثانیه میسر نیست چرا که هر مرتبه اجرای دستور مقداری زمان می برد.
    ویرایش توسط illusive_man : May 26th, 2016 در ساعت 11:42
    Telegram: illusiv3_m4n

  6. #5
    عضو انجمن
    تاریخ عضویت
    Mar 2012
    محل سکونت
    شیراز
    نوشته ها
    454
    تشکر تشکر کرده 
    257
    تشکر تشکر شده 
    216
    تشکر شده در
    167 پست

    پیش فرض پاسخ : انتقال اطلاعات بین دو سرور لینوکس

    نقل قول نوشته اصلی توسط illusive_man نمایش پست ها
    شما می بایست از ابزاری همچون rsync استفاده کنید برای این منظور، اما امکان اجرا در هر ثانیه میسر نیست چرا که هر مرتبه اجرای دستور مقداری زمان می برد و نیز در cron لینوکس زمانی کمتر از 1 دقیقه قابل تنظیم نیست.
    پس برای این کار باید چه کار کنیم؟
    از چه دستوری استفاده کنیم؟

  7. #6
    عضو انجمن
    تاریخ عضویت
    Mar 2012
    محل سکونت
    شیراز
    نوشته ها
    454
    تشکر تشکر کرده 
    257
    تشکر تشکر شده 
    216
    تشکر شده در
    167 پست

    پیش فرض پاسخ : انتقال اطلاعات بین دو سرور لینوکس

    کسی نمیتونه کمک کنه؟

  8. #7
    عضو جدید illusive_man آواتار ها
    تاریخ عضویت
    May 2016
    نوشته ها
    9
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    16
    تشکر شده در
    10 پست

    پیش فرض پاسخ : انتقال اطلاعات بین دو سرور لینوکس

    نقل قول نوشته اصلی توسط webhosts نمایش پست ها
    پس برای این کار باید چه کار کنیم؟
    از چه دستوری استفاده کنیم؟
    اگر اجرا به صورت ثانیه ای برای شما اهمیت دارد، بهترین گزینه دستور watch است که بصورت زیر استفاده می شود:

    کد:
    watch -n 1 command
    کد بالا، دستور command فرضی را در بازه های 1 ثانیه ای تا ابد اجرا خواهد نمود.
    Telegram: illusiv3_m4n

  9. تعداد تشکر ها از illusive_man به دلیل پست مفید


  10. #8
    عضو انجمن
    تاریخ عضویت
    Mar 2012
    محل سکونت
    شیراز
    نوشته ها
    454
    تشکر تشکر کرده 
    257
    تشکر تشکر شده 
    216
    تشکر شده در
    167 پست

    پیش فرض پاسخ : انتقال اطلاعات بین دو سرور لینوکس

    نقل قول نوشته اصلی توسط illusive_man نمایش پست ها
    اگر اجرا به صورت ثانیه ای برای شما اهمیت دارد، بهترین گزینه دستور watch است که بصورت زیر استفاده می شود:

    کد:
    watch -n 1 command
    کد بالا، دستور command فرضی را در بازه های 1 ثانیه ای تا ابد اجرا خواهد نمود.
    اگر بخواهم از دستور rsync استفاده کنم ، این دستور هر یک دقیقه یکبار اجرا می شود؟
    چه طور می توانم به صورت اتوماتیک ، دیتابیس را دائماً به یک سرور دیگر کپی کنم؟

  11. #9
    عضو جدید illusive_man آواتار ها
    تاریخ عضویت
    May 2016
    نوشته ها
    9
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    16
    تشکر شده در
    10 پست

    پیش فرض پاسخ : انتقال اطلاعات بین دو سرور لینوکس

    نقل قول نوشته اصلی توسط webhosts نمایش پست ها
    اگر بخواهم از دستور rsync استفاده کنم ، این دستور هر یک دقیقه یکبار اجرا می شود؟
    چه طور می توانم به صورت اتوماتیک ، دیتابیس را دائماً به یک سرور دیگر کپی کنم؟
    بله، البته هر ثانیه... در خصوص سوال دوم هم اگر از MySQL استفاده می کنید، در خصوص Replicate کردن آن جستجو بفرمایید چون بصورت داخلی از آن پشتیبانی می کند.
    Telegram: illusiv3_m4n

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •