بستن منو
۲۴
تعداد کلیدهای این موضوع
لیست همه کلیدهای این موضوع
مباحث اولیه برای آشنایی با ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
مباحث اولیه برای آشنایی با ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
17
نمایش اطلاعات در خروجی، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
نمایش اطلاعات در خروجی، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
0
کار با فایل ها (File) و پوشه ها (Folder)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
کار با فایل ها (File) و پوشه ها (Folder)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
2
فایل ها (File) و پوشه های (Folder) کاربران (User)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
فایل ها (File) و پوشه های (Folder) کاربران (User)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
0
کار با فایل های فشرده (Archive) (با پسوند tar.gz. و zip. و ...)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
کار با فایل های فشرده (Archive) (با پسوند tar.gz. و zip. و ...)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
3
سخت افزار سرور (Server)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
سخت افزار سرور (Server)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
1
انتقال فایل بین دو سرور (Server) لینوکس (Linux)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
انتقال فایل بین دو سرور (Server) لینوکس (Linux)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
1

×

دانلود فروشگاه اندروید کلیدستان

26635

نویسنده

علیرضا گلمکانی ( admin )

شماره کلید
دسته کلید - دسته بندی

انتقال فایل بین دو سرور (Server) لینوکس (Linux) (در دو محل فیزیکی متفاوت و هر دو متصل به اینترنت) (با ایجاد ارتباط مستقیم SSH بین دو سرور، به شکل امن و با سرعت بالا، بر اساس sftp)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH

فرض کنید که قصد داریم یک فایل را از سرور (Server) قدیمی به سرور (Server) جدید منتقل کنیم (کپی کردن فایل از سرور قدیمی به سرور جدید). با فرض اینکه در هر دو سرور (Server)، دارای اجازه برقراری ارتباط SSH بر اساس sftp باشیم (یعنی کاربر root بوده و دارای دسترسی کامل برای برقراری ارتباط sftp باشیم)، به جای اینکه از روش های معمولی کپی کردن فایل از اینترنت به سرور جدید (مثلا کپی کردن فایل از آدرس اینترنتی (URL) آن به محلی در سرور جدید) استفاده کنیم (که امنیت پایینی دارد و ممکن است اطلاعات به سرقت روند)، می توانیم از طریق SSH ، یک ارتباط مستقیم بین دو سرور (Server) ایجاد کنیم (بر اساس sftp) و از طریق آن، به امنیت بالا، سرعت انتقال زیاد، امکان Resume کردن فایل هایی که ناقص منتقل شده اند (ادامه انتقال فایل های ناقص) و محاسن دیگر ارتباط SSH بر اساس sftp بهره ببریم.

نکته

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

نکته

در سرورهایی (Server) که بنده با آنها کار کردم، تنها کاربر root می توانست از ارتباط امن sftp استفاده نماید. از اینکه چگونه سایر کاربران (User) نیز از این امکان استفاده کنند، بنده اطلاعی ندارم (می توانید در این مورد تحقیق کنید).

در واقع، کل فرآیند انتقال فایل ها از سرور (Server) قدیمی به سرور (Server) جدید می تواند به صورت 3 مرحله زیر اجرا گردد :

1- فشرده کردن فایل ها در سرور (Server) قدیمی، از طریق SSH (اینکه در یک یا چند فایل فشرده قرار بگیرند، بستگی به نظر شما دارد)

2- ایجاد ارتباط SSH مستقیم بین دو سرور (Server) و انتقال فایل های فشرده به سرور (Server) جدید

3- از حالت فشرده درآوردن فایل ها در سرور (Server) جدید، از طریق SSH

بنابراین مشاهده می کنید که برای انتقال فایل ها از سرور (Server) قدیمی به سرور (Server) جدید، تنها کافی است که از SSH استفاده کنید و از مزایای آن بهره ببرید. در این آموزش، ما مرحله دوم (مرحله انتقال فایل ها بین دو سرور (Server)) را شرح می دهیم (فشرده کردن و از حالت فشرده در آوردن فایل ها را در مباحث دیگر شرح داده ایم).

با فرض اینکه در سرور قدیمی، کاربر (User) دارای نام kelideir بوده است (فایل در قسمت فایل های این کاربر قرار داشته) و فایل مورد نظرمان نیز در مسیر زیر می باشد (فایل kelidestanir.tar.gz در پوشه اصلی وب سایت (یعنی پوشه public_html) مربوط به کاربر kelideir) :


/home/kelideir/public_html/kelidestanir.tar.gz

و ما می خواهیم که کپی فایل در سرور جدید، در مسیر زیر قرار گیرد (پوشه اصلی وب سایت (یعنی پوشه public_html) مربوط به کاربر newkelidestan (فایل در قسمت مربوط به فایل های این کاربر قرار می گیرد)) :


/home/newkelidestan/public_html

بنابراین ابتدا توسط نرم افزار puTTy ( کلید شماره 736 )، از طریق SSH به سرور جدید که می خواهیم فایل در آن کپی شود، متصل می شویم (به عنوان کاربر root).

قبل از هر چیز، باید در سرور جدید، به مسیری (پوشه ای) برویم که می خواهیم فایل در آن کپی شود. یعنی باید پوشه فعلی (Current Working Directory) را با استفاده از دستور cd تغییر دهیم.

بنابراین دستور زیر را اجرا می کنیم تا به مسیر (پوشه) مورد نظرمان برای قرارگیری فایل برویم :


cd /home/newkelidestan/public_html

اگر می خواهید به عنوان کاربری ((غیر از کاربر root)) به سرور قدیمی متصل شوید، باید دستور زیر اجرا شود (به جای عبارت IP ، باید ip مربوط به سرور قدیمی (برای اتصال به آن) نوشته شود) (البته دقت کنید که این ارتباط از نوع ftp است و ارتباط ftp امنیت کمتری نسبت به sftp دارد) :


ftp IP

که بعد از اجرای آن، از شما نام کاربری (Username) و رمز عبور (Password) برای اتصال به سرور قدیمی درخواست می کند.

اما اگر می خواهید به عنوان کاربر root به سرور قدیمی متصل شوید (بر اساس ارتباط امن sftp)، باید به جای دستور بالا، دستور زیر اجرا شود (به جای عبارت IP ، باید ip مربوط به سرور قدیمی (برای اتصال به آن) نوشته شود) (ارتباط امن sftp) :


sftp IP

که بعد از اجرای آن، چون با توجه به دستور، معلوم است که به عنوان کاربر root می خواهید به سرور قدیمی متصل شوید، تنها رمز عبور (Password) را از شما درخواست می کند (به عنوان کاربر root).

در هر دو دستور بالا، به جای عبارت IP ، باید ip مربوط به سرور قدیمی (برای اتصال به آن) نوشته شود. به عنوان مثال :


ftp 5.9.110.149

یا :


sftp 5.9.110.149
نکته مهم

در کدهای بالا، شماره پورت (Port) برای اتصال SSH را مشخص نکردیم، بنابراین شماره پورت (Port) پیش فرض برای اتصال SSH ، یعنی شماره 22 برای اتصال در نظر گرفته می شود، اما اگر شماره پورت (Port) برای اتصال SSH با شماره 22 فرق داشته باشد، با پیام خطا در هنگام اتصال روبرو می شوید و بنابراین، مثلا اگر با کنترل پنل DirectAdmin کار می کنید، باید مطابق کلید شماره 733 ، شماره پورت (Port) برای اتصال SSH را به دست آورده و به شکل زیر، در دستور ذکر نمایید :

برای دستور sftp :


sftp -oPort=1234 5.9.110.149

که در آن، شماره پورت (Port) برای اتصال SSH ، برابر 1234 در نظر گرفته شده است.

و برای دستور ftp :


در اینترنت جستجو کنید
نکته مهم

دقت کنید که شماره پورت (Port) برای اتصال SSH با شماره پورت (Port) برای وارد شدن (Login کردن) کاربران به کنترل پنل سرور، تفاوت دارد و این دو را با هم اشتباه نگیرید.

در مرحله اتصال، از شما پرسشی می شود که باید در پاسخ به آن، کلمه yes را تایپ کرده و سپس enter را بزنید و بعد اطلاعات کاربری (نام کاربری و رمز عبور) از شما دریافت می گردد.

بعد از اینکه سرور قدیمی، اطلاعات کاربری شما در آن سرور (سرور قدیمی) را از شما دریافت کرد و به آن متصل شدید، آنگاه توسط دستور cd می توانید به مسیری (پوشه ای) در سرور قدیمی بروید که فایل مورد نظرتان (فایل kelidestanir.tar.gz) در آن مسیر قرار گرفته است :


cd /home/kelideir/public_html

دستور بالا به این دلیل است که قبلا گفتیم فایل مورد نظرمان در مسیر home/kelideir/public_html/kelidestanir.tar.gz/ قرار گرفته است.

اگر به مسیر مورد نظر رفته اید و قصد دارید مطمئن شوید که فایل در آن مسیر قرار دارد، می توانید دستور ls را به صورت زیر به کار ببرید (نمایش فایل های عادی و فایل های پنهان) :


ls -a

بنابراین پس از اطمینان از صحیح بودن مسیر و همچنین وجود داشتن فایل مورد نظر، برای کپی کردن فایل مورد نظر از سرور قدیمی به درون پوشه فعلی (Current Working Directory) در سرور جدید، دستور زیر را اجرا می کنیم (تنها نام فایل، یعنی kelidestanir.tar.gz ، در دستور ذکر می شود) :


get kelidestanir.tar.gz

بنابراین فایل مورد نظر در مسیر (پوشه) مورد نظرمان در سرور جدید، کپی می شود.

نکته

در هنگام انتقال فایل، حجمی از فایل که منتقل شده و همچنین درصد مربوط به مقدار منتقل شده از فایل (مثلا 20 درصد) و سرعت انتقال در هر لحظه و میزان زمان باقی مانده (به صورت تخمینی)، نمایش داده می شود تا بدانیم که انتقال فایل به چه میزان انجام شده است.

معمولا با شروع انتقال، سرعت انتقال ابتدا کم است و همین طور زیاد می شود تا به یک حد ماکزیمم سرعت برسد.

نکته

در تمام مدتی که به سرور قدیمی متصل هستیم، عبارت زیر در ابتدای خط ها نمایش داده می شود :


sftp>

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


exit

بنابراین پس از قطع ارتباط با سرور قدیمی، دیگر عبارت sftp> را در ابتدای خط ها، مشاهده نخواهید کرد.

نکته مهم

وقتی فایلی را توسط کاربر root ، به درون پوشه های مربوط به یک کاربر معمولی منتقل می کنیم، آنگاه در کنترل پنل آن کاربر معمولی، وقتی آن فایل را مشاهده می کند، دو مورد UID و GID برای آن فایل، برای کاربر root تعیین شده است و بنابراین آن کاربر معمولی نمی تواند کنترلی بر روی آن فایل داشته باشد (مثل Move کردن، Copy کردن و ...) :

انتقال فایل بین دو سرور (Server) لینوکس (Linux) (در دو محل فیزیکی متفاوت و هر دو متصل به اینترنت) (با ایجاد ارتباط مستقیم SSH بین دو سرور، به شکل امن و با سرعت بالا، بر اساس sftp)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH

حتی اگر کاربر root ، یک فایل فشرده را منتقل کرده باشد و خودش هم آن را از حالت فشرده در بیارود، باز هم آن پوشه ها و فایل هایی که ایجاد می شوند، دو مورد UID و GID آنها، برای کاربر root تعیین شده است.

برای رفع این مشکل، چون باید هر دو مورد را به کاربر kelideir تغییر دهیم، برای فایل kelidestanir.tar.gz ، دستور زیر را اجرا می نماییم :


chown kelideir:kelideir kelidestanir.tar.gz

که در آن، از الگوی کلی زیر استفاده شده است :


chown UID:GID file_name

بنابراین نتیجه به صورت زیر می باشد :

انتقال فایل بین دو سرور (Server) لینوکس (Linux) (در دو محل فیزیکی متفاوت و هر دو متصل به اینترنت) (با ایجاد ارتباط مستقیم SSH بین دو سرور، به شکل امن و با سرعت بالا، بر اساس sftp)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH

و برای پوشه domains که در واقع قبلا با از حالت فشرده خارج کردن فایل kelidestanir.tar.gz ساخته شده است، کد زیر را اجرا می کنیم :


chown -R kelideir:kelideir domains

استفاده از عبارت R- در دستور بالا، اهمیت زیادی دارد و برای این است که هم پوشه تغییر داده شود و هم تمامی فایل ها و پوشه های درون آن، اما اگر عبارت R- از دستور حذف شود، تنها همان پوشه domains تغییر می کند و فایل ها و پوشه های درون آن، تغییر نخواهند کرد.

نتیجه به صورت زیر می باشد :

انتقال فایل بین دو سرور (Server) لینوکس (Linux) (در دو محل فیزیکی متفاوت و هر دو متصل به اینترنت) (با ایجاد ارتباط مستقیم SSH بین دو سرور، به شکل امن و با سرعت بالا، بر اساس sftp)، در ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH
نکته

حتی اگر ابتدا برای فایل kelidestanir.tar.gz ، دو مورد UID و GID را برای کاربر عادی تعیین کنیم و بعد توسط کاربر root و از طریق اتصال SSH ، فایل kelidestanir.tar.gz را از حالت فشرده خارج نماییم، باز هم پوشه domains که ساخته می شود و کلیه فایل ها و پوشه های درون آن، در آنها، دو مورد UID و GID برابر کاربر root تعیین می شود (بنابراین باز هم نیاز به تغییر دارند). اما اگر خود کاربر عادی از طریق کنترل پنل DirectAdmin فایل را از حالت فشرده خارج کند، آنگاه هم پوشه domains که ساخته می شود و هم کلیه فایل ها و پوشه های درون آن، در آنها، دو مورد UID و GID برابر همان کاربر عادی تعیین می شود (نه کاربر root).

نکته

ارتباط از طریق SSH بر اساس sftp را بنده برای دو سرور که یکی در آلمان و دیگری در ایران بود، امتحان کردم (در تاریخ 1397/06/17) که سرعت انتقال فایل بین آنها، حدود 2.8 مگابایت بر ثانیه (2.8 MB/s) می بود.

نکته

در هنگام انتقال فایل بین دو سرور، از طریق SSH بر اساس sftp ، برای بنده در چند بار اتفاق افتاد که با قطع شدن اینترنت، انتقال فایل بین دو سرور، متوقف شده بود و مجبور شدم که از دستور reget برای انتقال فایل از ادامه آن (Resume کردن)، استفاده نمایم (البته یک بار، با وجود قطع اینترنت، انتقال فایل ادامه یافته بود و فایل به صورت کامل منتقل شده بود).

دستور reget در ادامه توضیح داده شده است.

نکته مهم

اگر بخشی از فایل منتقل شود و به هر دلیلی، ادامه انتقال فایل متوقف گردد، نیازی نیست که حتما فایل را ازابتدای آن منتقل کنید، بلکه می تواند انتقال از ادامه فایل باشد (Resume کردن انتقال)، برای این منظور، باید به جای دستور get ، دستور reget را به کار ببرید :


reget kelidestanir.tar.gz

البته استفاده از عبارت a- در دستور get نیز می تواند معادل دستور بالا باشد، اما چون بنده هنوز این شکل استفاده از دستور get را تست نکرده ام (reget را تست کردم و صحیح عمل کرد)، توصیه می شود عبارت دقیق استفاده از دستور get به همراه عبارت a- را از منابع دیگر بخوانید و قبل از استفاده، از عملکرد صحیح آن اطمینان پیدا کنید.

نکته

شاید این سوال پیش بیاید که آیا انتقال همزمان چند فایل، باعث بیشتر شدن سرعت انتقال می شود یا خیر. بنده این مورد را در منابع (سایت های) مختلف بررسی کردم و در آنها ذکر شده بود که انتقال همزمان چند فایل، باعث بیشتر شدن سرعت انتقال نمی شود و تنها پهنای باند بین آنها تقسیم می گردد و در سرعت کلی تاثیری ندارد (البته بهتر است که خودتان نیز در این زمینه تحقیق کنید).

نکته

دامنه وب سایت کلیدستان برابر kelidestan.com می باشد، اما دامنه kelidestan.ir که در این آموزش در مواردی ذکر شد (گاهی برای تست آموزش ها به کار می رود)، برای این است که اگر کاربری به اشتباه دامنه kelidestan.ir را در مرورگر اینترنت خود وارد کرد، آن را به دامنه kelidestan.com هدایت کنیم (دامنه kelidestan.ir را برای این منظور تهیه کرده ایم). همپنین دامنه kdes.ir را نیز برای ساخت لینک های کوتاه برای وب سایت کلیدستان (kelidestan.com) به کار می بریم که طول URL آنها کوتاه باشد.

این نکته ربطی به آموزش ما نداشت و تنها برای این تذکر داده شد که دلیل وجود آن دو دامنه و استفاده کلیدستان از آنها را بدانید.

کپی برداری از محتوای سایت کلیدستان، ممنوع بوده و پیگرد قانونی دارد. (تنها استفاده شخصی کاربر، مجاز است) (کپی برداری توسط سایر وب سایت ها = حرام) (بیشتر بدانید)

خوانده شد
جستجو در عنوان کلیدها :
جستجو توسط گوگل :
پرسیدن سوال :
ارسال نظر :
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

دسترسی سریع

×

شماره کلید


کلید
×

شماره دسته کلید


دسته کلید
×

جستجو


جستجو
بستن منو
۶
تعداد کلیدهای این موضوع
لیست همه کلیدهای این موضوع
کاربران (User)، در کنترل پنل DirectAdmin
کاربران (User)، در کنترل پنل DirectAdmin
1
فایل ها (File) و پوشه های (Folder) کاربران (User)، در کنترل پنل DirectAdmin
فایل ها (File) و پوشه های (Folder) کاربران (User)، در کنترل پنل DirectAdmin
0
Package ها، در کنترل پنل DirectAdmin
Package ها، در کنترل پنل DirectAdmin
1
ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH ، در کنترل پنل DirectAdmin
ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH ، در کنترل پنل DirectAdmin
3
خاموش و روشن کردن سرور (Server)، در کنترل پنل DirectAdmin
خاموش و روشن کردن سرور (Server)، در کنترل پنل DirectAdmin
1