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

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

SCP کے ساتھ فائلوں کی منتقلی: ایک فوری رہنما

سیکیور کاپی پروٹوکول (SCP) ریموٹ اور لوکل مشینوں کے درمیان فائلوں اور ڈائریکٹریوں کو منتقل کرنے کا ایک آسان ٹول ہے۔ اگر آپ اپنے سرور تک رسائی کے لیے اکثر SSH استعمال کرتے ہیں، تو یہ جاننا کہ فولڈرز اور فائلوں کو مؤثر طریقے سے کاپی کرنے کا طریقہ آپ کے ڈیٹا کو منظم کرنے کے لیے ضروری ہے۔

اس گائیڈ میں، ہم دریافت کریں گے کہ کس طرح ایس سی پی کا استعمال کرتے ہوئے نام کے ریموٹ فولڈر کو کاپی کرنا ہے۔ foo آپ کی مقامی مشین پر، خاص طور پر /home/user/Desktop. یہ ٹیوٹوریل SSH اور ٹرمینل کمانڈز کی بنیادی تفہیم حاصل کرتا ہے۔

کمانڈ تفصیل
scp -r محفوظ طریقے سے ایک ڈائریکٹری اور اس کے مواد کو دور دراز کے میزبان سے مقامی مشین میں بار بار نقل کرتا ہے۔
paramiko.SSHClient() SSH آپریشنز کو آسان بنانے کے لیے Python میں ایک SSH کلائنٹ مثال بناتا ہے۔
scp.get() Python میں SCP کلائنٹ کو ریموٹ ہوسٹ سے مقامی پاتھ پر فائلوں یا ڈائریکٹریوں کو بازیافت کرنے کے لیے استعمال کرتا ہے۔
ansible.builtin.fetch ریموٹ مشینوں سے مقامی مشین میں فائلیں لانے کے لیے قابل جواب ماڈیول۔
flat: no کاپی کرتے وقت ڈائرکٹری کے ڈھانچے کو برقرار رکھنے کے لیے جوابی بازیافت ماڈیول میں اختیار۔
validate_checksum: yes کاپی شدہ فائلوں کے چیکسم کی توثیق کرکے ان کی سالمیت کو یقینی بناتا ہے۔

فائل ٹرانسفرز کے لیے SCP کو سمجھنا

فراہم کردہ شیل اسکرپٹ یہ ظاہر کرتی ہے کہ کس طرح استعمال کیا جائے۔ scp ایک فولڈر کو ریموٹ سرور سے مقامی مشین میں کاپی کرنے کے لیے۔ سب سے پہلے، یہ ریموٹ صارف نام، میزبان، اور ڈائریکٹری کے ساتھ ساتھ مقامی ڈائریکٹری کے متغیرات کی وضاحت کرتا ہے۔ اسکرپٹ پھر اس پر عمل درآمد کرتا ہے۔ scp -r کمانڈ، جس کا مطلب ہے "محفوظ کاپی" اور ڈائریکٹریز کی بار بار نقل کرنے کی اجازت دیتا ہے۔ نحو ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR} ماخذ کے راستے کی وضاحت کرتا ہے، جبکہ ${LOCAL_DIR} مقامی مشین پر منزل کا راستہ بتاتا ہے۔ اسکرپٹ کا اختتام کامیابی کے پیغام کی بازگشت سے ہوتا ہے۔

Python اسکرپٹ ایک ہی مقصد کو حاصل کرتا ہے لیکن استعمال کرتا ہے۔ paramiko SSH کنکشن کو ہینڈل کرنے کے لیے لائبریری اور scp محفوظ کاپی انجام دینے کے لیے لائبریری۔ ضروری لائبریریوں کو درآمد کرنے کے بعد، یہ دور دراز اور مقامی ڈائریکٹریوں کے لیے متغیرات کا تعین کرتا ہے۔ اسکرپٹ استعمال کرتے ہوئے ایک SSH کلائنٹ مثال بناتا ہے۔ paramiko.SSHClient() اور کے ساتھ ریموٹ سرور سے جڑتا ہے۔ connect طریقہ اس کے بعد یہ ایک SCP کلائنٹ مثال بناتا ہے۔ SCPClient(ssh.get_transport()) اور استعمال کرتا ہے scp.get ریموٹ ڈائرکٹری کو مقامی مشین میں کاپی کرنے کا طریقہ۔ آخر کار، اسکرپٹ SCP کلائنٹ کو بند کر دیتا ہے۔

جوابدہی کے ساتھ فائل ٹرانسفرز کو خودکار بنانا

جوابی پلے بک ریموٹ سرور سے مقامی مشین میں فائلوں کو کاپی کرنے کا ایک اور طریقہ ہے۔ Ansible کاموں کی وضاحت کے لیے YAML پر مبنی کنفیگریشن کا استعمال کرتا ہے۔ پلے بک کام کو نام دینے اور میزبانوں کی وضاحت سے شروع ہوتی ہے، جو اس صورت میں لوکل ہوسٹ ہے۔ اس کے بعد یہ استعمال کرتے ہوئے ریموٹ فولڈر لانے کے لئے ایک کام کی وضاحت کرتا ہے۔ ansible.builtin.fetch ماڈیول دی src attribute ریموٹ ڈائرکٹری کی وضاحت کرتا ہے، جبکہ dest attribute مقامی منزل کی وضاحت کرتا ہے۔ دی flat: no آپشن اس بات کو یقینی بناتا ہے کہ کاپی کے دوران ڈائریکٹری کا ڈھانچہ برقرار ہے۔

دی fail_on_missing: yes آپشن اس بات کو یقینی بناتا ہے کہ اگر سورس ڈائرکٹری موجود نہیں ہے تو پلے بک ناکام ہو جائے گی، غلطی سے نمٹنے کی ایک اضافی پرت فراہم کرتی ہے۔ مزید برآں، validate_checksum: yes آپشن کاپی شدہ فائلوں کے چیک سم کو چیک کرکے ان کی سالمیت کی تصدیق کرتا ہے، اس بات کو یقینی بناتا ہے کہ فائلوں کو درست طریقے سے اور بدعنوانی کے بغیر منتقل کیا گیا ہے۔ یہ نقطہ نظر خاص طور پر بار بار فائل کی منتقلی کے کاموں کو مستقل اور قابل اعتماد طریقے سے خودکار کرنے کے لیے مفید ہے۔

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

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

# Copying a remote folder to local directory using SCP
#!/bin/bash
# Define variables
REMOTE_USER="your_username"
REMOTE_HOST="your_server_address"
REMOTE_DIR="/path/to/remote/folder"
LOCAL_DIR="/home/user/Desktop"
# Execute SCP command
scp -r ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR} ${LOCAL_DIR}
echo "Folder copied successfully to ${LOCAL_DIR}"

ازگر کے ساتھ ایس سی پی فائل ٹرانسفرز کو خودکار بنانا

خودکار ایس سی پی ٹرانسفر کے لیے ازگر کا اسکرپٹ

import paramiko
from scp import SCPClient
# Define variables
remote_user = "your_username"
remote_host = "your_server_address"
remote_dir = "/path/to/remote/folder"
local_dir = "/home/user/Desktop"
# Create SSH client and connect
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.connect(remote_host, username=remote_user)
# Create SCP client and transfer files
scp = SCPClient(ssh.get_transport())
scp.get(remote_dir, local_dir, recursive=True)
scp.close()

ایس سی پی فائل ٹرانسفرز کا انتظام کرنے کے لیے جوابدہ کا استعمال

ایس سی پی فائل ٹرانسفر کے لیے قابل جواب پلے بک

--- 
- name: Copy folder from remote to local
  hosts: localhost
  tasks:
    - name: Copy remote folder to local directory
      ansible.builtin.fetch:
        src: "/path/to/remote/folder"
        dest: "/home/user/Desktop"
        flat: no
        fail_on_missing: yes
        validate_checksum: yes

اعلی درجے کی SCP تکنیک اور غور و فکر

بنیادی فائل کی منتقلی کے علاوہ، SCP کئی جدید خصوصیات اور اختیارات پیش کرتا ہے جو زیادہ پیچیدہ کاموں کے لیے انمول ہو سکتے ہیں۔ ایسی ہی ایک خصوصیت متعدد فائلوں یا ڈائریکٹریوں کی وضاحت کے لیے وائلڈ کارڈ کے حروف کو استعمال کرنے کی صلاحیت ہے۔ مثال کے طور پر، استعمال کرتے ہوئے scp user@remote_host:/path/to/files/*.txt /local/path/ تمام .txt فائلوں کو ریموٹ ڈائریکٹری سے مقامی ڈائریکٹری میں کاپی کرے گا۔ یہ وقت کی بچت کر سکتا ہے اور متعدد فائلوں کے ساتھ کام کرتے وقت ورک فلو کو ہموار کر سکتا ہے۔

ایک اور مفید خصوصیت ہے -P اختیار، جو آپ کو SCP کنکشن کے لیے پورٹ نمبر بتانے کی اجازت دیتا ہے۔ یہ خاص طور پر کارآمد ہے اگر آپ کی SSH سروس غیر معیاری پورٹ پر چلتی ہے۔ مثال کے طور پر، استعمال کرتے ہوئے scp -P 2222 user@remote_host:/path/to/file /local/path/ پورٹ 2222 پر ریموٹ ہوسٹ سے جڑے گا۔ -C آپشن کو منتقلی کے دوران ڈیٹا کو کمپریس کرنے کے لیے استعمال کیا جا سکتا ہے، جو بڑی فائلوں کے لیے منتقلی کے اوقات کو نمایاں طور پر کم کر سکتا ہے۔ یہ شامل کرکے حاصل کیا جاتا ہے۔ -C ایس سی پی کمانڈ کو، جیسے کہ میں scp -C user@remote_host:/path/to/largefile /local/path/.

SCP فائل ٹرانسفرز کے بارے میں عام سوالات

  1. میں ایس سی پی کا استعمال کرتے ہوئے پوری ڈائرکٹری کیسے کاپی کروں؟
  2. کمانڈ استعمال کریں۔ scp -r user@remote_host:/path/to/remote/dir /local/path/ بار بار ڈائریکٹری کاپی کرنے کے لیے۔
  3. کیا میں SCP کا استعمال کرتے ہوئے کسی مخصوص پورٹ سے فائلیں کاپی کر سکتا ہوں؟
  4. جی ہاں، آپ کے ساتھ پورٹ کی وضاحت کر سکتے ہیں scp -P port_number user@remote_host:/path/to/file /local/path/.
  5. میں SCP کا استعمال کرتے ہوئے متعدد فائلوں کو کیسے کاپی کر سکتا ہوں؟
  6. وائلڈ کارڈ کے حروف جیسے استعمال کریں۔ scp user@remote_host:/path/to/files/*.txt /local/path/ متعدد فائلوں کو کاپی کرنے کے لیے۔
  7. کیا SCP ٹرانسفر کے دوران فائلوں کو سکیڑنا ممکن ہے؟
  8. ہاں، شامل کریں۔ -C آپ کے ایس سی پی کمانڈ کا اختیار، جیسے scp -C user@remote_host:/path/to/file /local/path/.
  9. میں SCP کے ساتھ بڑی فائل ٹرانسفرز کو کیسے ہینڈل کروں؟
  10. کا استعمال کرتے ہیں -C فائلوں کو کمپریس کرنے کا اختیار، اور رکاوٹوں کو روکنے کے لیے ایک مستحکم کنکشن کو یقینی بنانا۔
  11. کیا SCP کو اسکرپٹ کے ساتھ خودکار کیا جا سکتا ہے؟
  12. جی ہاں، آپ SCP فائل کی منتقلی کو خودکار کرنے کے لیے شیل اسکرپٹس، ازگر کی اسکرپٹس، یا جوابی پلے بکس استعمال کرسکتے ہیں۔
  13. اگر SCP ٹرانسفر ناکام ہو جائے تو مجھے کیا کرنا چاہیے؟
  14. نیٹ ورک کنیکٹیویٹی چیک کریں، درست راستے اور اجازتوں کو یقینی بنائیں، اور SSH کنفیگریشن کی تصدیق کریں۔
  15. کیا SCP کسی رکاوٹ کی منتقلی کو دوبارہ شروع کر سکتا ہے؟
  16. نہیں، SCP منتقلی دوبارہ شروع کرنے کی حمایت نہیں کرتا ہے۔ دوبارہ شروع کی جانے والی منتقلی کے لیے rsync استعمال کرنے پر غور کریں۔
  17. میں SCP ٹرانسفر کے دوران فائل کی سالمیت کو کیسے یقینی بنا سکتا ہوں؟
  18. کا استعمال کرتے ہیں validate_checksum جواب میں آپشن یا ٹرانسفر کے بعد دستی طور پر چیکسم کی تصدیق کریں۔

SCP ٹرانسفرز پر حتمی خیالات:

ریموٹ اور لوکل مشینوں کے درمیان فائل ٹرانسفر کے لیے SCP کے استعمال میں مہارت حاصل کرنا سرور کے موثر انتظام کے لیے ایک ضروری مہارت ہے۔ شیل اسکرپٹس، پائتھون اسکرپٹس، اور جوابی پلے بکس کا استعمال کرکے، آپ ان کاموں کو خودکار اور آسان بنا سکتے ہیں، وقت کی بچت اور غلطیوں کو کم کر سکتے ہیں۔ اعلی درجے کے اختیارات جیسے تکراری کاپی کرنا، پورٹ کی تفصیلات، اور ڈیٹا کمپریشن SCP کی استعداد کو مزید بڑھاتا ہے۔ چاہے روزانہ کی کارروائیوں کے لیے ہو یا بڑے پیمانے پر ڈیٹا کی منتقلی کے لیے، ان تکنیکوں کو سمجھنا محفوظ اور قابل اعتماد فائل کی منتقلی کو یقینی بناتا ہے۔