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 स्थानिक मशीनवर रिमोट डिरेक्टरी कॉपी करण्यासाठी कमांड. द कमांड, ज्याचा अर्थ सिक्योर कॉपी प्रोटोकॉल आहे, हे कमांड-लाइन टूल आहे जे रिमोट होस्ट आणि स्थानिक मशीन दरम्यान फायली सुरक्षितपणे स्थानांतरित करण्यासाठी SSH वापरते. द -r कमांडमधील ध्वज हे निर्दिष्ट करते की ऑपरेशन पुनरावृत्ती होणारे असावे, म्हणजे ते निर्दिष्ट निर्देशिकेतील सर्व फायली आणि निर्देशिका कॉपी करेल. कमांड स्ट्रक्चर सरळ आहे: scp -r user@remote_host:/path/to/remote/folder /home/user/Desktop/. येथे, user@remote_host दूरस्थ वापरकर्ता आणि होस्ट निर्दिष्ट करते, आणि आणि /home/user/Desktop/ अनुक्रमे स्त्रोत आणि गंतव्य मार्ग आहेत.

दुसरे उदाहरण एक शेल स्क्रिप्ट आहे जी SCP प्रक्रिया स्वयंचलित करते. ही स्क्रिप्ट रिमोट वापरकर्ता, होस्ट आणि पथांसाठी व्हेरिएबल्स परिभाषित करते, ज्यामुळे ते पुन्हा वापरणे आणि सुधारणे सोपे होते. स्क्रिप्ट वापरते scp -r फायली हस्तांतरित करण्यासाठी बॅश स्क्रिप्टमध्ये, जे पुनरावृत्ती हस्तांतरण आवश्यक असलेल्या परिस्थितींमध्ये मदत करते. हस्तांतरण पूर्ण झाल्यावर वापरकर्त्याला सूचित करण्यासाठी त्यात एक सूचना संदेश देखील समाविष्ट आहे. तिसरे उदाहरण पॅरामिको लायब्ररीसह पायथन वापरते, जे अधिक जटिल किंवा स्वयंचलित वर्कफ्लोसाठी विशेषतः उपयुक्त आहे. स्क्रिप्ट SSH क्लायंट सेट करते आणि वापरते paramiko.SFTPClient.from_transport() SFTP सत्र तयार करण्याची पद्धत. ते नंतर रिमोट सर्व्हरवरून स्थानिक निर्देशिकेत फाइल्सची पुनरावृत्ती करून कॉपी करण्यासाठी फंक्शन परिभाषित करते. आणि 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 फाइल ट्रान्सफरसाठी पायथन स्क्रिप्ट

Paramiko लायब्ररी वापरून Python स्क्रिप्ट

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 ध्वज, जे कॉम्प्रेशन सक्षम करते, संभाव्यत: मोठ्या फाइल्सच्या हस्तांतरणास गती देते.

वापरताना सुरक्षितता ही आणखी एक महत्त्वाची बाब आहे . असताना सुरक्षित हस्तांतरणासाठी मूळतः SSH वापरते, सुरक्षा वाढविण्यासाठी तुम्ही अतिरिक्त पावले उचलू शकता. उदाहरणार्थ, संकेतशब्दांऐवजी प्रमाणीकरणासाठी SSH की वापरल्याने सुरक्षा आणि सुविधा लक्षणीयरीत्या सुधारू शकतात. याव्यतिरिक्त, तुम्ही वापरून भिन्न SSH पोर्ट निर्दिष्ट करू शकता १७ तुमचा सर्व्हर डीफॉल्ट पोर्ट 22 वापरत नसल्यास पर्याय. उदाहरणार्थ, १८ तुम्हाला पोर्ट 2222 वर SSH चालवणाऱ्या सर्व्हरशी कनेक्ट करण्याची परवानगी देते.

SCP बद्दल सामान्यतः विचारले जाणारे प्रश्न आणि उत्तरे

  1. मी SCP वापरून स्थानिक ते दूरस्थ फाइल कशी कॉपी करू?
  2. तुम्ही वापरू शकता scp local_file user@remote_host:/path/to/remote/directory.
  3. मी SCP हस्तांतरणाची प्रगती कशी तपासू शकतो?
  4. वापरा -v व्हर्बोज मोड सक्षम करण्याचा पर्याय: २१.
  5. SCP वापरताना मी फाइल विशेषता जतन करू शकतो का?
  6. होय, वापरा -p बदल वेळ, प्रवेश वेळ आणि मोड जतन करण्याचा पर्याय: scp -p -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  7. मी वेगळ्या SSH की सह SCP कसे वापरू?
  8. सह SSH की निर्दिष्ट करा २४ पर्याय: २५.
  9. मी SCP सह मोठ्या फाइल ट्रान्सफर कसे हाताळू?
  10. वापरा -C कॉम्प्रेशनसाठी पर्याय आणि -l बँडविड्थ मर्यादित करण्याचा पर्याय: २८.
  11. मी वेगळ्या SSH पोर्टद्वारे SCP वापरून फायली कशा हस्तांतरित करू?
  12. वापरा १७ पोर्ट निर्दिष्ट करण्यासाठी पर्याय: १८.
  13. SCP ला प्रतीकात्मक दुवे हाताळू शकतात?
  14. होय, द -r पर्याय प्रतीकात्मक दुवे तसेच फाइल्स आणि निर्देशिका कॉपी करेल.
  15. SCP हस्तांतरणात व्यत्यय आल्यास काय होईल?
  16. पुन्हा चालवा हस्तांतरण पुन्हा सुरू करण्यासाठी आदेश; ते आधीच कॉपी केलेल्या फाइल्स वगळेल.
  17. स्क्रिप्टमध्ये पासवर्डसह SCP कसे वापरावे?
  18. त्याऐवजी SSH की वापरण्याची शिफारस केली जाते, परंतु तुम्ही यासारखी साधने वापरू शकता ३३ स्क्रिप्टमध्ये पासवर्ड प्रमाणीकरणासाठी.

SCP वापरावरील अंतिम विचार

रिमोट सर्व्हरवरून स्थानिक मशीनवर फाइल्स आणि निर्देशिका हस्तांतरित करण्यासाठी SCP कसे वापरायचे हे समजून घेतल्याने तुमची कार्यप्रवाह कार्यक्षमता मोठ्या प्रमाणात वाढू शकते. मुलभूत आदेश आणि प्रगत तंत्र या दोन्हीवर प्रभुत्व मिळवून, तुम्ही सुरक्षित आणि कार्यक्षम डेटा हस्तांतरण सुनिश्चित करू शकता. तुम्ही एकल फाइल्स किंवा संपूर्ण डिरेक्टरी कॉपी करत असाल, स्क्रिप्टसह कार्ये स्वयंचलित करत असाल किंवा अधिक जटिल ऑपरेशन्ससाठी पायथन वापरत असाल तरीही, तुमच्या डेटा व्यवस्थापन गरजांसाठी SCP हे एक बहुमुखी आणि शक्तिशाली साधन आहे.