ایس سی پی کا استعمال کرتے ہوئے فائلوں کو ریموٹ سے لوکل میں منتقل کرنا

ایس سی پی کا استعمال کرتے ہوئے فائلوں کو ریموٹ سے لوکل میں منتقل کرنا
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 -r فائلوں کی منتقلی کے لیے باش اسکرپٹ کے اندر، جو ان حالات میں مدد کرتا ہے جہاں بار بار منتقلی کی ضرورت ہوتی ہے۔ اس میں ایک نوٹیفکیشن میسج بھی شامل ہے تاکہ صارف کو ٹرانسفر مکمل ہونے پر مطلع کیا جا سکے۔ تیسری مثال پیرامیکو لائبریری کے ساتھ ازگر کا استعمال کرتی ہے، جو خاص طور پر زیادہ پیچیدہ یا خودکار ورک فلو کے لیے مفید ہے۔ اسکرپٹ ایک SSH کلائنٹ ترتیب دیتا ہے اور استعمال کرتا ہے۔ paramiko.SFTPClient.from_transport() SFTP سیشن بنانے کا طریقہ۔ اس کے بعد یہ ایک فنکشن کی وضاحت کرتا ہے جس کا استعمال کرتے ہوئے ریموٹ سرور سے فائلوں کو مقامی ڈائریکٹری میں بار بار کاپی کرنا ہے۔ scp.listdir_attr() اور paramiko.S_ISDIR() فائلوں اور ڈائریکٹریوں میں فرق کرنے کے لیے۔ یہ نقطہ نظر ان لوگوں کے لیے فائدہ مند ہے جو Python میں اسکرپٹنگ کو ترجیح دیتے ہیں اور فائل ٹرانسفر کی فعالیت کو بڑے آٹومیشن اسکرپٹس میں ضم کرنے کی ضرورت ہے۔

فائلوں کو ریموٹ سرور سے لوکل مشین میں منتقل کرنے کے لیے 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 کے لیے شیل اسکرپٹ

#!/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}"

SCP فائل ٹرانسفر کے لیے ازگر کا اسکرپٹ

پیرامیکو لائبریری کا استعمال کرتے ہوئے ازگر کا اسکرپٹ

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 استعمال: تجاویز اور ترکیبیں۔

کے بنیادی استعمال سے ہٹ کر 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. میں ایس سی پی کا استعمال کرتے ہوئے فائل کو لوکل سے ریموٹ میں کیسے کاپی کروں؟
  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 کا استعمال کرنے کے طریقہ کو سمجھنا آپ کے ورک فلو کی کارکردگی کو بہت زیادہ بڑھا سکتا ہے۔ بنیادی کمانڈز اور جدید تکنیک دونوں میں مہارت حاصل کر کے، آپ محفوظ اور موثر ڈیٹا کی منتقلی کو یقینی بنا سکتے ہیں۔ چاہے آپ سنگل فائلز یا پوری ڈائرکٹریز کاپی کر رہے ہوں، اسکرپٹ کے ساتھ کاموں کو خودکار کر رہے ہوں، یا مزید پیچیدہ آپریشنز کے لیے Python کا استعمال کر رہے ہوں، SCP آپ کی ڈیٹا مینجمنٹ کی ضروریات کے لیے ایک ورسٹائل اور طاقتور ٹول ہے۔