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

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 کو سمجھنا

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

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

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

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

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

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

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

  1. میں ایس سی پی کا استعمال کرتے ہوئے پوری ڈائرکٹری کیسے کاپی کروں؟
  2. کمانڈ استعمال کریں۔ بار بار ڈائریکٹری کاپی کرنے کے لیے۔
  3. کیا میں SCP کا استعمال کرتے ہوئے کسی مخصوص پورٹ سے فائلیں کاپی کر سکتا ہوں؟
  4. جی ہاں، آپ کے ساتھ پورٹ کی وضاحت کر سکتے ہیں .
  5. میں SCP کا استعمال کرتے ہوئے متعدد فائلوں کو کیسے کاپی کر سکتا ہوں؟
  6. وائلڈ کارڈ کے حروف جیسے استعمال کریں۔ متعدد فائلوں کو کاپی کرنے کے لیے۔
  7. کیا SCP ٹرانسفر کے دوران فائلوں کو سکیڑنا ممکن ہے؟
  8. ہاں، شامل کریں۔ آپ کے ایس سی پی کمانڈ کا اختیار، جیسے .
  9. میں SCP کے ساتھ بڑی فائل ٹرانسفرز کو کیسے ہینڈل کروں؟
  10. کا استعمال کرتے ہیں فائلوں کو کمپریس کرنے کا اختیار، اور رکاوٹوں کو روکنے کے لیے ایک مستحکم کنکشن کو یقینی بنانا۔
  11. کیا SCP کو اسکرپٹ کے ساتھ خودکار کیا جا سکتا ہے؟
  12. جی ہاں، آپ SCP فائل کی منتقلی کو خودکار کرنے کے لیے شیل اسکرپٹس، ازگر کی اسکرپٹس، یا جوابی پلے بکس استعمال کرسکتے ہیں۔
  13. اگر SCP ٹرانسفر ناکام ہو جائے تو مجھے کیا کرنا چاہیے؟
  14. نیٹ ورک کنیکٹیویٹی چیک کریں، درست راستے اور اجازتوں کو یقینی بنائیں، اور SSH کنفیگریشن کی تصدیق کریں۔
  15. کیا SCP کسی رکاوٹ کی منتقلی کو دوبارہ شروع کر سکتا ہے؟
  16. نہیں، SCP منتقلی دوبارہ شروع کرنے کی حمایت نہیں کرتا ہے۔ دوبارہ شروع کی جانے والی منتقلی کے لیے rsync استعمال کرنے پر غور کریں۔
  17. میں SCP ٹرانسفر کے دوران فائل کی سالمیت کو کیسے یقینی بنا سکتا ہوں؟
  18. کا استعمال کرتے ہیں جواب میں آپشن یا ٹرانسفر کے بعد دستی طور پر چیکسم کی تصدیق کریں۔

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