آموزش انتقال فایل بین دو سرور لینوکس با استفاده SCP
اگر با محیط لینوکس و SSH آشنایی داشته باشید حتما برایتان سوال پیش آمده که چگونه می توانید فایل هایتان را بین دو سرور لینوکسی کپی کنید. دستور SCP امکان انتقال فایل به صورت امن و سریع بین دو سرور را برایتان فراهم خواهد کرد. این ابزار کاربری با استفاده از SSH انتقال فایل ها را انجام می دهد. سرعت انتقال نیز بر اساس سرعت دانلود و آپلود دو سرور می باشد.
برای شروع اگر با محیط SSH و نحوه اتصال به آن آشنایی ندارید، پیشنهاد می کنم آموزش اتصال به سرور از طریق SSH را مطالعه کنید. در ادامه شما رو به این آموزش دعوت می کنم.
در بیشی از دستورات لینوکسی، به دلیل استفاده از ابزار های جانبی (Third-party Software) نیاز به نصب بسته یا همان پکیج ابزار می باشید اما دستور SCP یک ابزار Native در لینوکس می باشد و نیازی به نصب پیش نیاز نخواهید داشت. در ابتدا توضیحی درباره برخی از مقادیر استفاده شده در این آموزش می پردازیم تا ایده کلی برایتان باز تر شود.
آموزش انتقال فایل از سرور مبدا به سرور مقصد
مثال های استفاده شده در این آموزش:
- SCP : دستور اصلی
- 7host.txt : فایلی که قصد انتقال آن را داریم
- remote_server_username : نام کاربری سرور مقصد
- remote_server_IP : آدرس IP سرور مقصد
- /remote/directory/ : مسیری که در سرور مقصد قصد انتقال فایل خود را داریم
مثال دستور با استفاده از مقادیر بالا:
scp 7host.txt remote_server_username@remote_server_IP /remote/directory/
حالا یه مثال با مقادیری که بیشتر به واقعیت در استفاده نزدیک است:
scp 7host.txt root@192.168.1.104 /home/
دستور بالا در واقع فایل 7host.txt رو از سرور مبدا به سرور مقصد در پوشه /home/ ذخیره می کنn. اگر این دستور را در SSH صادر کنید، سیستم از شما سوال خواهد پرسید که آیا از انتقال این فایل اطمینان دارید یا خیر که با no و yes می توانید پاسخ دهید. البته یادتون باشد که اگر دو سرور را با public SSH Key به هم متصل نکرده باشید، در هنگام اتصال از شما رمز سرور مقصد ر درخواست خواهد کرد.
Are you sure you want to continue connecting (yes/no)?
به همین راحتی می توانید یک فایل را از سرور خود به سرور دیگر منتقل کنید.
آموزش انتقال فایل از سرور مقصد به سرور مبدا
برای انتقال فایل به صورت برعکس از مقصد به مبدا، تفاوت چندانی وجود ندارد. تنها برخی از مقادیر در دستور صادر شده تغییر خواهد کرد. برای اینکار با دستور زیر می توانید این کار را انجام دهید.
scp root@192.168.1.104:/home/7host.txt /local/directory
با دستور بالا در واقع فایل 7host.txt را که در مسیر home قرار دارد را به از سرور مقصد به سرور مبدا در مسیر /local/directory/ انتقال خواهید داد.
آموزش انتقال فایل از یک سرور ریموت به یک سرور ریموت دیگر
همچنین می توانید با استفاده از دستور SCP، فایل های واقع در یک سرور ریموت را به سرور ریموت دیگری انتقال دهید. برای انجام این کار فقط کافی است با استفاده از دستور زیر فایل مورد نظر خود را منتقل کنید. البته می بایست مسیر فایلی که قصد انتقال آن را دارید را بندانید.
scp root@192.168.1.104:/home/7host.txt root@192.168.1.105:/home
با دستور بالا فایل 7host.txt را از سرور با آی پی ۱۰۴ به سرور با آی پی ۱۰۵ انتقال خواهید داد.
دیگر دستورات کاربردی SCP
انتقال چندین فایل مختلف به صورت همزمان:
scp 7host1.txt 7host2.txt 7host.zip root@192.168.1.104:/home
انتقال یک دایرکتوری کامل با اضافه کردن دستور -r به دستور اصلی:
با این دستور دایرکتوری backups واقع در دایرکتوری home را تمام و کمال به دایرکتوری سرور مبدا واقع در /home/ منتقل خواهید کرد.
scp -r /home/backups root@192.168.1.104:/home
انتقال اطلاعات با استفاده از پورت کاستوم SSH
تغییر پورت SSH یک امر رایج می باشد زیرا این پورت مدام مورد حمله قرار میگیرد. چنانچه از پورت کاستوم برای سرور خود استفاده می کنید، می توانید با اضافه کردن دستور -P به دستور اصلی، پورت کاستوم خود را مطابق با مثال زیر اضافه کنید. در مثال زیر ۱۲۳۴ در واقع پورت کاستوم سرور شما می باشد.
scp -P 1234 7host.txt root@192.168.1.104:/home
امیدوارم این آموزش مورد توجه شما کاربر گرامی قرار گرفته باشه. اگر سوالی دارید در بخش نظرات اون رو مطرح کنید. همچنین پیشنهاد می کنم به جمع بزرگ کاربران سون هاست در انجمن گفتگو ملحق شوید.
https://blog.7ho.st/transfer-files-between-two-servers-suing-scp-command-ssh/