SCP ব্যবহার করে দূরবর্তী থেকে স্থানীয় ফাইল স্থানান্তর

SCP ব্যবহার করে দূরবর্তী থেকে স্থানীয় ফাইল স্থানান্তর
Shell

নিরাপদে ফাইল কপি করা: SCP ব্যবহার করার জন্য একটি নির্দেশিকা

সিকিউর কপি প্রোটোকল (SCP) হল একটি শক্তিশালী টুল যা দূরবর্তী সার্ভার এবং একটি স্থানীয় মেশিনের মধ্যে নিরাপদে ফাইল এবং ডিরেক্টরি স্থানান্তর করার জন্য। আপনি যদি প্রায়শই আপনার সার্ভার অ্যাক্সেস করার জন্য SSH ব্যবহার করেন, কীভাবে কার্যকরভাবে SCP ব্যবহার করবেন তা জেনে আপনার কর্মপ্রবাহকে সুগম করতে পারে, নিশ্চিত করে যে আপনি আপনার দূরবর্তী সার্ভার থেকে আপনার স্থানীয় সিস্টেমে গুরুত্বপূর্ণ ফাইলগুলি দ্রুত এবং নিরাপদে অনুলিপি করতে পারেন।

এই নির্দেশিকায়, আমরা আপনাকে /home/user/Desktop-এ আপনার স্থানীয় ডিরেক্টরিতে "foo" নামে একটি দূরবর্তী ফোল্ডার অনুলিপি করার পদক্ষেপগুলি নিয়ে চলে যাব। আপনি ব্যাকআপ পরিচালনা করছেন, কোড স্থাপন করছেন, বা কেবল ফাইলগুলি সরাতে হবে, SCP কমান্ডগুলি বোঝা আপনার কাজগুলিকে আরও সহজ এবং দক্ষ করে তুলবে৷

আদেশ বর্ণনা
scp -r দূরবর্তী থেকে স্থানীয় মেশিনে সম্পূর্ণ ডিরেক্টরিগুলি সুরক্ষিতভাবে অনুলিপি করে।
paramiko.SFTPClient.from_transport() একটি বিদ্যমান SSH পরিবহন থেকে একটি SFTP ক্লায়েন্ট তৈরি করে।
os.makedirs() সমস্ত মধ্যবর্তী-স্তরের ডিরেক্টরি তৈরি করা হয়েছে তা নিশ্চিত করে পুনরাবৃত্তিমূলকভাবে একটি ডিরেক্টরি তৈরি করে।
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) প্রম্পট না করে স্বয়ংক্রিয়ভাবে সার্ভারের হোস্ট কী যোগ করে, স্ক্রিপ্টিংয়ের জন্য দরকারী।
scp.listdir_attr() পুনরাবৃত্ত অনুলিপি কার্যকারিতা সক্ষম করে একটি ডিরেক্টরিতে ফাইলগুলির বৈশিষ্ট্যগুলি তালিকাভুক্ত করে৷
paramiko.S_ISDIR() একটি প্রদত্ত পথ একটি ডিরেক্টরি কিনা তা পরীক্ষা করে, পুনরাবৃত্ত অনুলিপিতে সহায়তা করে।
scp.get() দূরবর্তী সার্ভার থেকে স্থানীয় মেশিনে একটি ফাইল কপি করে।

SCP স্ক্রিপ্টের বিস্তারিত ব্যাখ্যা

প্রথম স্ক্রিপ্ট উদাহরণ ব্যবহার প্রদর্শন করে scp -r একটি স্থানীয় মেশিনে একটি দূরবর্তী ডিরেক্টরি অনুলিপি করার কমান্ড। দ্য scp কমান্ড, যার অর্থ সিকিউর কপি প্রোটোকল, একটি কমান্ড-লাইন টুল যা দূরবর্তী হোস্ট এবং একটি স্থানীয় মেশিনের মধ্যে নিরাপদে ফাইল স্থানান্তর করতে SSH ব্যবহার করে। দ্য -r কমান্ডে ফ্ল্যাগ নির্দিষ্ট করে যে অপারেশনটি পুনরাবৃত্তিমূলক হওয়া উচিত, যার অর্থ এটি নির্দিষ্ট ডিরেক্টরির মধ্যে সমস্ত ফাইল এবং ডিরেক্টরি অনুলিপি করবে। কমান্ড গঠন সোজা: scp -r user@remote_host:/path/to/remote/folder /home/user/Desktop/. এখানে, user@remote_host দূরবর্তী ব্যবহারকারী এবং হোস্ট নির্দিষ্ট করে, এবং /path/to/remote/folder এবং /home/user/Desktop/ উৎস এবং গন্তব্য পথ, যথাক্রমে.

দ্বিতীয় উদাহরণ হল একটি শেল স্ক্রিপ্ট যা SCP প্রক্রিয়াটিকে স্বয়ংক্রিয় করে। এই স্ক্রিপ্টটি দূরবর্তী ব্যবহারকারী, হোস্ট এবং পাথগুলির জন্য ভেরিয়েবলগুলিকে সংজ্ঞায়িত করে, এটি পুনরায় ব্যবহার এবং পরিবর্তন করা সহজ করে তোলে। স্ক্রিপ্ট ব্যবহার করে scp -r ফাইল স্থানান্তর করার জন্য একটি ব্যাশ স্ক্রিপ্টের মধ্যে, যা এমন পরিস্থিতিতে সাহায্য করে যেখানে পুনরাবৃত্তিমূলক স্থানান্তর প্রয়োজন হয়। এটি স্থানান্তর সম্পূর্ণ হলে ব্যবহারকারীকে জানানোর জন্য একটি বিজ্ঞপ্তি বার্তাও অন্তর্ভুক্ত করে। তৃতীয় উদাহরণটি প্যারামিকো লাইব্রেরির সাথে পাইথন ব্যবহার করে, যা আরও জটিল বা স্বয়ংক্রিয় কর্মপ্রবাহের জন্য বিশেষভাবে উপযোগী। স্ক্রিপ্ট একটি SSH ক্লায়েন্ট সেট আপ করে এবং ব্যবহার করে paramiko.SFTPClient.from_transport() একটি SFTP সেশন তৈরি করার পদ্ধতি। তারপরে এটি ব্যবহার করে দূরবর্তী সার্ভার থেকে স্থানীয় ডিরেক্টরিতে ফাইলগুলিকে পুনরাবৃত্তিমূলকভাবে অনুলিপি করার জন্য একটি ফাংশন সংজ্ঞায়িত করে scp.listdir_attr() এবং paramiko.S_ISDIR() ফাইল এবং ডিরেক্টরির মধ্যে পার্থক্য করতে। এই পদ্ধতিটি তাদের জন্য উপকারী যারা পাইথনে স্ক্রিপ্টিং পছন্দ করেন এবং বড় অটোমেশন স্ক্রিপ্টগুলিতে ফাইল স্থানান্তর কার্যকারিতা একীভূত করতে চান।

দূরবর্তী সার্ভার থেকে স্থানীয় মেশিনে ফাইল স্থানান্তর করতে SCP ব্যবহার করা

SCP-এর জন্য শেল স্ক্রিপ্ট

# Basic SCP command to copy a remote folder to a local directory
scp -r user@remote_host:/path/to/remote/folder /home/user/Desktop/

# Breakdown of the command:
# scp: invokes the SCP program
# -r: recursively copies entire directories
# user@remote_host:/path/to/remote/folder: specifies the user and path to the remote folder
# /home/user/Desktop/: specifies the local destination directory

# Example usage with real values:
scp -r user@example.com:/var/www/foo /home/user/Desktop/

একটি শেল স্ক্রিপ্ট সহ স্বয়ংক্রিয় SCP স্থানান্তর

SCP স্বয়ংক্রিয় করার জন্য শেল স্ক্রিপ্ট

#!/bin/bash
# This script automates the SCP process

# Variables
REMOTE_USER="user"
REMOTE_HOST="remote_host"
REMOTE_PATH="/path/to/remote/folder"
LOCAL_PATH="/home/user/Desktop/"

# Execute SCP command
scp -r ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH} ${LOCAL_PATH}

# Notify user of completion
echo "Files have been copied successfully from ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH} to ${LOCAL_PATH}"

এসসিপি ফাইল স্থানান্তরের জন্য পাইথন স্ক্রিপ্ট

প্যারামিকো লাইব্রেরি ব্যবহার করে পাইথন স্ক্রিপ্ট

import paramiko
import os

# Establish SSH client
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('remote_host', username='user', password='password')

# SCP command
scp = paramiko.SFTPClient.from_transport(ssh.get_transport())

# Define remote and local paths
remote_path = '/path/to/remote/folder'
local_path = '/home/user/Desktop/'

# Function to recursively copy files
def recursive_copy(remote_path, local_path):
    os.makedirs(local_path, exist_ok=True)
    for item in scp.listdir_attr(remote_path):
        remote_item = remote_path + '/' + item.filename
        local_item = os.path.join(local_path, item.filename)
        if paramiko.S_ISDIR(item.st_mode):
            recursive_copy(remote_item, local_item)
        else:
            scp.get(remote_item, local_item)

# Start copy process
recursive_copy(remote_path, local_path)

# Close connections
scp.close()
ssh.close()
print(f"Files have been copied successfully from {remote_path} to {local_path}")

উন্নত এসসিপি ব্যবহার: টিপস এবং কৌশল

এর মৌলিক ব্যবহারের বাইরে scp ফাইল এবং ডিরেক্টরি অনুলিপি করার জন্য, বেশ কয়েকটি উন্নত কৌশল এবং বিকল্প রয়েছে যা আপনার ফাইল স্থানান্তর অভিজ্ঞতাকে উন্নত করতে পারে। একটি দরকারী বৈশিষ্ট্য হ'ল স্থানান্তরের সময় ব্যবহৃত ব্যান্ডউইথ সীমাবদ্ধ করার ক্ষমতা, যা সীমিত নেটওয়ার্ক সংস্থানগুলির সাথে কাজ করার সময় বিশেষভাবে সহায়ক হতে পারে। এটি ব্যবহার করে অর্জন করা যেতে পারে -l বিকল্প প্রতি সেকেন্ডে কিলোবিট ব্যান্ডউইথ সীমা অনুসরণ করে, উদাহরণস্বরূপ, scp -r -l 1000 user@remote_host:/path/to/remote/folder /home/user/Desktop/. আরেকটি দরকারী বিকল্প হল -C পতাকা, যা কম্প্রেশন সক্ষম করে, সম্ভাব্যভাবে বড় ফাইলের স্থানান্তরকে দ্রুততর করে।

ব্যবহার করার সময় বিবেচনা করার জন্য নিরাপত্তা আরেকটি গুরুত্বপূর্ণ দিক scp. যখন scp নিরাপদ স্থানান্তরের জন্য সহজাতভাবে SSH ব্যবহার করে, নিরাপত্তা বাড়ানোর জন্য আপনি নিতে পারেন অতিরিক্ত পদক্ষেপ। উদাহরণস্বরূপ, পাসওয়ার্ডের পরিবর্তে প্রমাণীকরণের জন্য SSH কীগুলি ব্যবহার করা নিরাপত্তা এবং সুবিধার উল্লেখযোগ্যভাবে উন্নতি করতে পারে। উপরন্তু, আপনি ব্যবহার করে একটি ভিন্ন SSH পোর্ট নির্দিষ্ট করতে পারেন -P বিকল্প যদি আপনার সার্ভার ডিফল্ট পোর্ট 22 ব্যবহার না করে। উদাহরণস্বরূপ, scp -P 2222 -r user@remote_host:/path/to/remote/folder /home/user/Desktop/ আপনাকে পোর্ট 2222 এ SSH চলমান একটি সার্ভারের সাথে সংযোগ করতে দেয়।

SCP সম্পর্কে সাধারণত জিজ্ঞাসিত প্রশ্ন ও উত্তর

  1. আমি কীভাবে SCP ব্যবহার করে স্থানীয় থেকে দূরবর্তীতে একটি ফাইল অনুলিপি করব?
  2. তুমি ব্যবহার করতে পার scp local_file user@remote_host:/path/to/remote/directory.
  3. আমি কিভাবে SCP স্থানান্তরের অগ্রগতি পরীক্ষা করতে পারি?
  4. ব্যবহার -v ভার্বোস মোড সক্ষম করার বিকল্প: scp -v -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  5. SCP ব্যবহার করার সময় আমি কি ফাইলের গুণাবলী সংরক্ষণ করতে পারি?
  6. হ্যাঁ, ব্যবহার করুন -p পরিবর্তনের সময়, অ্যাক্সেসের সময় এবং মোড সংরক্ষণ করার বিকল্প: scp -p -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  7. আমি কিভাবে একটি ভিন্ন SSH কী দিয়ে SCP ব্যবহার করব?
  8. এর সাথে SSH কী উল্লেখ করুন -i বিকল্প: scp -i /path/to/key -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  9. আমি কিভাবে SCP এর সাথে বড় ফাইল স্থানান্তর পরিচালনা করব?
  10. ব্যবহার -C কম্প্রেশন জন্য বিকল্প এবং -l ব্যান্ডউইথ সীমিত করার বিকল্প: scp -C -l 1000 -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  11. আমি কিভাবে একটি ভিন্ন SSH পোর্টের মাধ্যমে SCP ব্যবহার করে ফাইল স্থানান্তর করব?
  12. ব্যবহার -P পোর্ট নির্দিষ্ট করার বিকল্প: scp -P 2222 -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  13. SCP কি প্রতীকী লিঙ্কগুলি পরিচালনা করতে পারে?
  14. হ্যাঁ -r বিকল্পটি প্রতীকী লিঙ্কের পাশাপাশি ফাইল এবং ডিরেক্টরিগুলি অনুলিপি করবে।
  15. একটি SCP স্থানান্তর বাধাগ্রস্ত হলে কি হবে?
  16. পুনরায় চালান scp স্থানান্তর পুনরায় শুরু করার আদেশ; এটি ইতিমধ্যে অনুলিপি করা ফাইলগুলিকে এড়িয়ে যাবে৷
  17. আমি কিভাবে একটি স্ক্রিপ্টে একটি পাসওয়ার্ড সহ SCP ব্যবহার করব?
  18. পরিবর্তে SSH কীগুলি ব্যবহার করার পরামর্শ দেওয়া হয়, তবে আপনি যেমন সরঞ্জামগুলি ব্যবহার করতে পারেন৷ sshpass স্ক্রিপ্টে পাসওয়ার্ড প্রমাণীকরণের জন্য।

SCP ব্যবহার সম্পর্কে চূড়ান্ত চিন্তা

দূরবর্তী সার্ভার থেকে স্থানীয় মেশিনে ফাইল এবং ডিরেক্টরি স্থানান্তর করতে কীভাবে SCP ব্যবহার করবেন তা বোঝা আপনার কর্মপ্রবাহের দক্ষতাকে ব্যাপকভাবে বাড়িয়ে তুলতে পারে। মৌলিক কমান্ড এবং উন্নত কৌশল উভয়ই আয়ত্ত করে, আপনি নিরাপদ এবং দক্ষ ডেটা স্থানান্তর নিশ্চিত করতে পারেন। আপনি একক ফাইল বা সম্পূর্ণ ডিরেক্টরি অনুলিপি করছেন, স্ক্রিপ্টের সাহায্যে কাজগুলি স্বয়ংক্রিয় করছেন বা আরও জটিল ক্রিয়াকলাপের জন্য পাইথন ব্যবহার করছেন না কেন, SCP আপনার ডেটা পরিচালনার প্রয়োজনের জন্য একটি বহুমুখী এবং শক্তিশালী হাতিয়ার হিসাবে রয়ে গেছে।