एससीपी का उपयोग करके रिमोट से लोकल में फोल्डर और फाइलों को कॉपी करना

एससीपी का उपयोग करके रिमोट से लोकल में फोल्डर और फाइलों को कॉपी करना
Shell

एससीपी के साथ फ़ाइलें स्थानांतरित करना: एक त्वरित मार्गदर्शिका

सिक्योर कॉपी प्रोटोकॉल (एससीपी) दूरस्थ और स्थानीय मशीनों के बीच फ़ाइलों और निर्देशिकाओं को स्थानांतरित करने के लिए एक उपयोगी उपकरण है। यदि आप अपने सर्वर तक पहुंचने के लिए अक्सर एसएसएच का उपयोग करते हैं, तो आपके डेटा को प्रबंधित करने के लिए फ़ोल्डर्स और फ़ाइलों को कुशलतापूर्वक कॉपी करने का तरीका जानना आवश्यक है।

इस गाइड में, हम यह पता लगाएंगे कि नामित दूरस्थ फ़ोल्डर की प्रतिलिपि बनाने के लिए एससीपी का उपयोग कैसे करें फू आपकी स्थानीय मशीन पर, विशेष रूप से /होम/उपयोगकर्ता/डेस्कटॉप. यह ट्यूटोरियल SSH और टर्मिनल कमांड की बुनियादी समझ पर आधारित है।

आज्ञा विवरण
scp -r किसी निर्देशिका और उसकी सामग्री को दूरस्थ होस्ट से स्थानीय मशीन पर पुनरावर्ती रूप से सुरक्षित रूप से कॉपी करता है।
paramiko.SSHClient() SSH संचालन को सुविधाजनक बनाने के लिए Python में SSH क्लाइंट इंस्टेंस बनाता है।
scp.get() दूरस्थ होस्ट से स्थानीय पथ पर फ़ाइलों या निर्देशिकाओं को पुनः प्राप्त करने के लिए पायथन में एससीपी क्लाइंट का उपयोग करता है।
ansible.builtin.fetch दूरस्थ मशीनों से स्थानीय मशीन तक फ़ाइलें लाने के लिए Ansible मॉड्यूल।
flat: no कॉपी करते समय निर्देशिका संरचना को बनाए रखने के लिए एन्सिबल फ़ेच मॉड्यूल में विकल्प।
validate_checksum: yes कॉपी की गई फ़ाइलों के चेकसम को सत्यापित करके उनकी अखंडता सुनिश्चित करता है।

फ़ाइल स्थानांतरण के लिए एससीपी को समझना

प्रदान की गई शेल स्क्रिप्ट दर्शाती है कि कैसे उपयोग करना है scp किसी फ़ोल्डर को दूरस्थ सर्वर से स्थानीय मशीन पर कॉपी करने के लिए। सबसे पहले, यह दूरस्थ उपयोगकर्ता नाम, होस्ट और निर्देशिका के साथ-साथ स्थानीय निर्देशिका के लिए चर को परिभाषित करता है। स्क्रिप्ट तब निष्पादित होती है scp -r कमांड, जिसका अर्थ है "सुरक्षित प्रतिलिपि" और निर्देशिकाओं की पुनरावर्ती प्रतिलिपि बनाने की अनुमति देता है। वाक्यविन्यास ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR} जबकि, स्रोत पथ निर्दिष्ट करता है ${LOCAL_DIR} स्थानीय मशीन पर गंतव्य पथ निर्दिष्ट करता है। स्क्रिप्ट एक सफलता संदेश को दोहराते हुए समाप्त होती है।

पायथन स्क्रिप्ट समान लक्ष्य प्राप्त करती है लेकिन इसका उपयोग करती है paramiko एसएसएच कनेक्शन को संभालने के लिए लाइब्रेरी और scp सुरक्षित प्रतिलिपि निष्पादित करने के लिए लाइब्रेरी। आवश्यक पुस्तकालयों को आयात करने के बाद, यह दूरस्थ और स्थानीय निर्देशिकाओं के लिए चर सेट करता है। स्क्रिप्ट का उपयोग करके SSH क्लाइंट इंस्टेंस बनाता है paramiko.SSHClient() और रिमोट सर्वर से जुड़ जाता है connect तरीका। इसके बाद यह एक एससीपी क्लाइंट इंस्टेंस बनाता है SCPClient(ssh.get_transport()) और का उपयोग करता है scp.get दूरस्थ निर्देशिका को स्थानीय मशीन पर कॉपी करने की विधि। अंत में, स्क्रिप्ट एससीपी क्लाइंट को बंद कर देती है।

Ansible के साथ फ़ाइल स्थानांतरण को स्वचालित करना

रिमोट सर्वर से स्थानीय मशीन पर फ़ाइलों की प्रतिलिपि बनाने के लिए अन्सिबल प्लेबुक एक और तरीका है। कार्यों को परिभाषित करने के लिए Ansible YAML-आधारित कॉन्फ़िगरेशन का उपयोग करता है। प्लेबुक कार्य को नाम देने और होस्ट निर्दिष्ट करने से शुरू होती है, जो इस मामले में लोकलहोस्ट है। इसके बाद यह इसका उपयोग करके एक दूरस्थ फ़ोल्डर लाने के कार्य को परिभाषित करता है ansible.builtin.fetch मापांक। src विशेषता दूरस्थ निर्देशिका निर्दिष्ट करती है, जबकि dest विशेषता स्थानीय गंतव्य निर्दिष्ट करती है। flat: no विकल्प यह सुनिश्चित करता है कि प्रतिलिपि के दौरान निर्देशिका संरचना बनी रहे।

fail_on_missing: yes विकल्प यह सुनिश्चित करता है कि यदि स्रोत निर्देशिका मौजूद नहीं है तो प्लेबुक विफल हो जाएगी, त्रुटि प्रबंधन की एक अतिरिक्त परत प्रदान की जाएगी। इसके अतिरिक्त, validate_checksum: yes विकल्प कॉपी की गई फ़ाइलों की अखंडता को उनके चेकसम की जांच करके सत्यापित करता है, यह सुनिश्चित करता है कि फ़ाइलों को सही ढंग से और भ्रष्टाचार के बिना स्थानांतरित किया गया है। यह दृष्टिकोण लगातार और विश्वसनीय तरीके से दोहराए जाने वाले फ़ाइल स्थानांतरण कार्यों को स्वचालित करने के लिए विशेष रूप से उपयोगी है।

रिमोट से लोकल में फ़ाइलें स्थानांतरित करने के लिए एससीपी का उपयोग करना

एससीपी फ़ाइल स्थानांतरण के लिए शेल स्क्रिप्ट

# 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()

एससीपी फ़ाइल स्थानांतरण को प्रबंधित करने के लिए Ansible का उपयोग करना

एससीपी फ़ाइल स्थानांतरण के लिए Ansible प्लेबुक

--- 
- 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 user@remote_host:/path/to/files/*.txt /local/path/ दूरस्थ निर्देशिका से सभी .txt फ़ाइलों को स्थानीय निर्देशिका में कॉपी कर देगा। इससे कई फ़ाइलों से निपटते समय समय की बचत हो सकती है और वर्कफ़्लो सुव्यवस्थित हो सकता है।

एक अन्य उपयोगी सुविधा है -P विकल्प, जो आपको एससीपी कनेक्शन के लिए एक पोर्ट नंबर निर्दिष्ट करने की अनुमति देता है। यह विशेष रूप से उपयोगी है यदि आपकी 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/.

एससीपी फ़ाइल स्थानांतरण के बारे में सामान्य प्रश्न

  1. मैं एससीपी का उपयोग करके संपूर्ण निर्देशिका की प्रतिलिपि कैसे बनाऊं?
  2. आदेश का प्रयोग करें scp -r user@remote_host:/path/to/remote/dir /local/path/ किसी निर्देशिका की पुनरावर्ती प्रतिलिपि बनाना।
  3. क्या मैं एससीपी का उपयोग करके किसी विशिष्ट पोर्ट से फ़ाइलें कॉपी कर सकता हूँ?
  4. हाँ, आप पोर्ट निर्दिष्ट कर सकते हैं scp -P port_number user@remote_host:/path/to/file /local/path/.
  5. मैं एससीपी का उपयोग करके एकाधिक फ़ाइलों की प्रतिलिपि कैसे बना सकता हूँ?
  6. जैसे वाइल्डकार्ड वर्णों का उपयोग करें scp user@remote_host:/path/to/files/*.txt /local/path/ एकाधिक फ़ाइलें कॉपी करने के लिए.
  7. क्या एससीपी स्थानांतरण के दौरान फ़ाइलों को संपीड़ित करना संभव है?
  8. हाँ, जोड़ें -C आपके एससीपी कमांड का विकल्प, जैसे scp -C user@remote_host:/path/to/file /local/path/.
  9. मैं एससीपी के साथ बड़ी फ़ाइल स्थानांतरण कैसे संभाल सकता हूँ?
  10. उपयोग -C फ़ाइलों को संपीड़ित करने का विकल्प, और रुकावटों को रोकने के लिए एक स्थिर कनेक्शन सुनिश्चित करना।
  11. क्या एससीपी को स्क्रिप्ट के साथ स्वचालित किया जा सकता है?
  12. हां, आप एससीपी फ़ाइल स्थानांतरण को स्वचालित करने के लिए शेल स्क्रिप्ट, पायथन स्क्रिप्ट या एन्सिबल प्लेबुक का उपयोग कर सकते हैं।
  13. यदि एससीपी स्थानांतरण विफल हो जाता है तो मुझे क्या करना चाहिए?
  14. नेटवर्क कनेक्टिविटी की जाँच करें, सही पथ और अनुमतियाँ सुनिश्चित करें और SSH कॉन्फ़िगरेशन सत्यापित करें।
  15. क्या एससीपी बाधित स्थानांतरण को फिर से शुरू कर सकता है?
  16. नहीं, एससीपी स्थानांतरण फिर से शुरू करने का समर्थन नहीं करता है। पुन: प्रारंभ करने योग्य स्थानांतरण के लिए rsync का उपयोग करने पर विचार करें।
  17. मैं एससीपी स्थानांतरण के दौरान फ़ाइल अखंडता कैसे सुनिश्चित कर सकता हूँ?
  18. उपयोग validate_checksum Ansible में विकल्प या स्थानांतरण के बाद चेकसम को मैन्युअल रूप से सत्यापित करें।

एससीपी स्थानांतरण पर अंतिम विचार:

दूरस्थ और स्थानीय मशीनों के बीच फ़ाइल स्थानांतरण के लिए एससीपी के उपयोग में महारत हासिल करना कुशल सर्वर प्रबंधन के लिए एक आवश्यक कौशल है। शेल स्क्रिप्ट, पायथन स्क्रिप्ट और एन्सिबल प्लेबुक का उपयोग करके, आप इन कार्यों को स्वचालित और सरल बना सकते हैं, समय बचा सकते हैं और त्रुटियों को कम कर सकते हैं। पुनरावर्ती प्रतिलिपि, पोर्ट विनिर्देश और डेटा संपीड़न जैसे उन्नत विकल्प एससीपी की बहुमुखी प्रतिभा को और बढ़ाते हैं। चाहे दैनिक संचालन के लिए हो या बड़े पैमाने पर डेटा माइग्रेशन के लिए, इन तकनीकों को समझने से सुरक्षित और विश्वसनीय फ़ाइल स्थानांतरण सुनिश्चित होता है।