SCP ഉപയോഗിച്ച് റിമോട്ടിൽ നിന്ന് ലോക്കലിലേക്ക് ഫോൾഡറുകളും ഫയലുകളും പകർത്തുന്നു

SCP ഉപയോഗിച്ച് റിമോട്ടിൽ നിന്ന് ലോക്കലിലേക്ക് ഫോൾഡറുകളും ഫയലുകളും പകർത്തുന്നു
Shell

SCP ഉപയോഗിച്ച് ഫയലുകൾ കൈമാറുന്നു: ഒരു ദ്രുത ഗൈഡ്

റിമോട്ട്, ലോക്കൽ മെഷീനുകൾക്കിടയിൽ ഫയലുകളും ഡയറക്‌ടറികളും കൈമാറുന്നതിനുള്ള ഒരു ഹാൻഡി ടൂളാണ് സെക്യുർ കോപ്പി പ്രോട്ടോക്കോൾ (SCP). നിങ്ങളുടെ സെർവർ ആക്‌സസ് ചെയ്യാൻ നിങ്ങൾ SSH പതിവായി ഉപയോഗിക്കുകയാണെങ്കിൽ, ഫോൾഡറുകളും ഫയലുകളും എങ്ങനെ കാര്യക്ഷമമായി പകർത്താമെന്ന് അറിയുന്നത് നിങ്ങളുടെ ഡാറ്റ നിയന്ത്രിക്കുന്നതിന് അത്യന്താപേക്ഷിതമാണ്.

ഈ ഗൈഡിൽ, പേരുള്ള റിമോട്ട് ഫോൾഡർ പകർത്താൻ SCP എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഞങ്ങൾ പര്യവേക്ഷണം ചെയ്യും foo നിങ്ങളുടെ പ്രാദേശിക മെഷീനിലേക്ക്, പ്രത്യേകിച്ച് /വീട്/ഉപയോക്താവ്/ഡെസ്ക്ടോപ്പ്. ഈ ട്യൂട്ടോറിയൽ എസ്എസ്എച്ച്, ടെർമിനൽ കമാൻഡുകൾ എന്നിവയെക്കുറിച്ചുള്ള അടിസ്ഥാന ധാരണ അനുമാനിക്കുന്നു.

കമാൻഡ് വിവരണം
scp -r ഒരു ഡയറക്‌ടറിയും അതിലെ ഉള്ളടക്കങ്ങളും ഒരു റിമോട്ട് ഹോസ്റ്റിൽ നിന്ന് ഒരു ലോക്കൽ മെഷീനിലേക്ക് ആവർത്തിച്ച് സുരക്ഷിതമായി പകർത്തുന്നു.
paramiko.SSHClient() SSH പ്രവർത്തനങ്ങൾ സുഗമമാക്കുന്നതിന് പൈത്തണിൽ ഒരു SSH ക്ലയൻ്റ് ഇൻസ്റ്റൻസ് സൃഷ്ടിക്കുന്നു.
scp.get() റിമോട്ട് ഹോസ്റ്റിൽ നിന്ന് ഒരു ലോക്കൽ പാഥിലേക്ക് ഫയലുകളോ ഡയറക്ടറികളോ വീണ്ടെടുക്കാൻ പൈത്തണിലെ SCP ക്ലയൻ്റ് ഉപയോഗിക്കുന്നു.
ansible.builtin.fetch റിമോട്ട് മെഷീനുകളിൽ നിന്ന് ലോക്കൽ മെഷീനിലേക്ക് ഫയലുകൾ ലഭ്യമാക്കുന്നതിനുള്ള അൻസിബിൾ മൊഡ്യൂൾ.
flat: no പകർത്തുമ്പോൾ ഡയറക്‌ടറി ഘടന നിലനിർത്തുന്നതിനുള്ള അൻസിബിൾ ഫെച്ച് മൊഡ്യൂളിലെ ഓപ്ഷൻ.
validate_checksum: yes കോപ്പി ചെയ്ത ഫയലുകളുടെ ചെക്ക്സം സാധൂകരിക്കുന്നതിലൂടെ അവയുടെ സമഗ്രത ഉറപ്പാക്കുന്നു.

ഫയൽ കൈമാറ്റങ്ങൾക്കായി SCP മനസ്സിലാക്കുന്നു

നൽകിയിരിക്കുന്ന ഷെൽ സ്ക്രിപ്റ്റ് എങ്ങനെ ഉപയോഗിക്കണമെന്ന് കാണിക്കുന്നു scp ഒരു റിമോട്ട് സെർവറിൽ നിന്ന് ഒരു ലോക്കൽ മെഷീനിലേക്ക് ഒരു ഫോൾഡർ പകർത്താൻ. ആദ്യം, ഇത് റിമോട്ട് ഉപയോക്തൃനാമം, ഹോസ്റ്റ്, ഡയറക്‌ടറി, കൂടാതെ ലോക്കൽ ഡയറക്‌ടറി എന്നിവയ്‌ക്കായുള്ള വേരിയബിളുകൾ നിർവചിക്കുന്നു. സ്ക്രിപ്റ്റ് പിന്നീട് എക്സിക്യൂട്ട് ചെയ്യുന്നു scp -r "സുരക്ഷിത പകർപ്പ്" എന്നതിൻ്റെ അർത്ഥം വരുന്ന കമാൻഡ്, ഡയറക്‌ടറികൾ ആവർത്തിച്ച് പകർത്താൻ അനുവദിക്കുന്നു. വാക്യഘടന ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR} ഉറവിട പാത വ്യക്തമാക്കുന്നു, അതേസമയം ${LOCAL_DIR} ലോക്കൽ മെഷീനിൽ ലക്ഷ്യസ്ഥാന പാത വ്യക്തമാക്കുന്നു. ഒരു വിജയ സന്ദേശം പ്രതിധ്വനിച്ചുകൊണ്ടാണ് സ്ക്രിപ്റ്റ് അവസാനിക്കുന്നത്.

പൈത്തൺ സ്ക്രിപ്റ്റ് ഇതേ ലക്ഷ്യം കൈവരിക്കുന്നു, പക്ഷേ ഉപയോഗിക്കുന്നു paramiko SSH കണക്ഷനുകൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള ലൈബ്രറിയും scp സുരക്ഷിതമായ പകർപ്പ് നിർവഹിക്കാനുള്ള ലൈബ്രറി. ആവശ്യമായ ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്ത ശേഷം, ഇത് റിമോട്ട്, ലോക്കൽ ഡയറക്ടറികൾക്കായി വേരിയബിളുകൾ സജ്ജമാക്കുന്നു. സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് ഒരു SSH ക്ലയൻ്റ് ഉദാഹരണം സൃഷ്ടിക്കുന്നു paramiko.SSHClient() ഉപയോഗിച്ച് വിദൂര സെർവറിലേക്ക് ബന്ധിപ്പിക്കുന്നു connect രീതി. ഇത് ഉപയോഗിച്ച് ഒരു SCP ക്ലയൻ്റ് ഉദാഹരണം സൃഷ്ടിക്കുന്നു SCPClient(ssh.get_transport()) ഉപയോഗിക്കുകയും ചെയ്യുന്നു scp.get റിമോട്ട് ഡയറക്ടറി ലോക്കൽ മെഷീനിലേക്ക് പകർത്തുന്നതിനുള്ള രീതി. അവസാനമായി, സ്ക്രിപ്റ്റ് SCP ക്ലയൻ്റ് അടയ്ക്കുന്നു.

അൻസിബിൾ ഉപയോഗിച്ച് ഫയൽ കൈമാറ്റം ഓട്ടോമേറ്റ് ചെയ്യുന്നു

റിമോട്ട് സെർവറിൽ നിന്ന് ലോക്കൽ മെഷീനിലേക്ക് ഫയലുകൾ പകർത്തുന്നതിനുള്ള മറ്റൊരു രീതിയാണ് അൻസിബിൾ പ്ലേബുക്ക്. ടാസ്‌ക്കുകൾ നിർവചിക്കുന്നതിന് Ansible ഒരു YAML-അടിസ്ഥാനത്തിലുള്ള കോൺഫിഗറേഷൻ ഉപയോഗിക്കുന്നു. ടാസ്‌ക്കിന് പേരുനൽകിയും ഹോസ്റ്റുകളെ വ്യക്തമാക്കിക്കൊണ്ടും പ്ലേബുക്ക് ആരംഭിക്കുന്നു, ഈ സാഹചര്യത്തിൽ ഇത് ലോക്കൽ ഹോസ്റ്റാണ്. തുടർന്ന് ഇത് ഉപയോഗിച്ച് ഒരു റിമോട്ട് ഫോൾഡർ ലഭ്യമാക്കുന്നതിനുള്ള ഒരു ടാസ്ക്ക് നിർവ്വചിക്കുന്നു ansible.builtin.fetch മൊഡ്യൂൾ. ദി src ആട്രിബ്യൂട്ട് റിമോട്ട് ഡയറക്ടറി വ്യക്തമാക്കുന്നു, അതേസമയം dest ആട്രിബ്യൂട്ട് പ്രാദേശിക ലക്ഷ്യസ്ഥാനം വ്യക്തമാക്കുന്നു. ദി 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}"

പൈത്തൺ ഉപയോഗിച്ച് SCP ഫയൽ കൈമാറ്റങ്ങൾ ഓട്ടോമേറ്റ് ചെയ്യുന്നു

ഓട്ടോമേറ്റഡ് SCP കൈമാറ്റത്തിനുള്ള പൈത്തൺ സ്ക്രിപ്റ്റ്

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

SCP ഫയൽ കൈമാറ്റങ്ങൾ നിയന്ത്രിക്കാൻ അൻസിബിൾ ഉപയോഗിക്കുന്നു

SCP ഫയൽ കൈമാറ്റത്തിനുള്ള അൻസിബിൾ പ്ലേബുക്ക്

--- 
- 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 കമാൻഡിലേക്ക് scp -C user@remote_host:/path/to/largefile /local/path/.

SCP ഫയൽ കൈമാറ്റങ്ങളെക്കുറിച്ചുള്ള പൊതുവായ ചോദ്യങ്ങൾ

  1. SCP ഉപയോഗിച്ച് ഒരു മുഴുവൻ ഡയറക്ടറിയും എങ്ങനെ പകർത്താം?
  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 കമാൻഡിലേക്കുള്ള ഓപ്ഷൻ, പോലുള്ളവ scp -C user@remote_host:/path/to/file /local/path/.
  9. SCP ഉപയോഗിച്ച് വലിയ ഫയൽ കൈമാറ്റങ്ങൾ എങ്ങനെ കൈകാര്യം ചെയ്യാം?
  10. ഉപയോഗിക്കുക -C ഫയലുകൾ കംപ്രസ്സുചെയ്യാനുള്ള ഓപ്ഷൻ, തടസ്സങ്ങൾ തടയുന്നതിന് സ്ഥിരതയുള്ള കണക്ഷൻ ഉറപ്പാക്കുക.
  11. സ്ക്രിപ്റ്റുകൾ ഉപയോഗിച്ച് എസ്സിപി ഓട്ടോമേറ്റ് ചെയ്യാൻ കഴിയുമോ?
  12. അതെ, SCP ഫയൽ കൈമാറ്റങ്ങൾ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിന് നിങ്ങൾക്ക് ഷെൽ സ്ക്രിപ്റ്റുകൾ, പൈത്തൺ സ്ക്രിപ്റ്റുകൾ അല്ലെങ്കിൽ അൻസിബിൾ പ്ലേബുക്കുകൾ ഉപയോഗിക്കാം.
  13. ഒരു SCP കൈമാറ്റം പരാജയപ്പെട്ടാൽ ഞാൻ എന്തുചെയ്യണം?
  14. നെറ്റ്‌വർക്ക് കണക്റ്റിവിറ്റി പരിശോധിക്കുക, ശരിയായ പാതയും അനുമതികളും ഉറപ്പാക്കുക, കൂടാതെ SSH കോൺഫിഗറേഷൻ പരിശോധിക്കുക.
  15. തടസ്സപ്പെട്ട കൈമാറ്റം SCPക്ക് പുനരാരംഭിക്കാനാകുമോ?
  16. ഇല്ല, കൈമാറ്റങ്ങൾ പുനരാരംഭിക്കുന്നതിനെ SCP പിന്തുണയ്ക്കുന്നില്ല. പുനരാരംഭിക്കാവുന്ന കൈമാറ്റങ്ങൾക്കായി rsync ഉപയോഗിക്കുന്നത് പരിഗണിക്കുക.
  17. എസ്‌സിപി കൈമാറ്റ സമയത്ത് എനിക്ക് എങ്ങനെ ഫയൽ സമഗ്രത ഉറപ്പാക്കാനാകും?
  18. ഉപയോഗിക്കുക validate_checksum അൻസിബിളിലെ ഓപ്ഷൻ അല്ലെങ്കിൽ കൈമാറ്റത്തിന് ശേഷം ചെക്ക്സം നേരിട്ട് പരിശോധിക്കുക.

SCP കൈമാറ്റങ്ങളെക്കുറിച്ചുള്ള അന്തിമ ചിന്തകൾ:

റിമോട്ട്, ലോക്കൽ മെഷീനുകൾക്കിടയിൽ ഫയൽ കൈമാറ്റങ്ങൾക്കായി എസ്‌സിപിയുടെ ഉപയോഗം മാസ്റ്റേഴ്സ് ചെയ്യുന്നത് കാര്യക്ഷമമായ സെർവർ മാനേജ്മെൻ്റിന് അത്യന്താപേക്ഷിതമായ ഒരു വൈദഗ്ധ്യമാണ്. ഷെൽ സ്ക്രിപ്റ്റുകൾ, പൈത്തൺ സ്ക്രിപ്റ്റുകൾ, അൻസിബിൾ പ്ലേബുക്കുകൾ എന്നിവ ഉപയോഗിക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് ഈ ജോലികൾ ഓട്ടോമേറ്റ് ചെയ്യാനും ലളിതമാക്കാനും സമയം ലാഭിക്കാനും പിശകുകൾ കുറയ്ക്കാനും കഴിയും. റിക്കേഴ്‌സീവ് കോപ്പി ചെയ്യൽ, പോർട്ട് സ്‌പെസിഫിക്കേഷൻ, ഡാറ്റ കംപ്രഷൻ തുടങ്ങിയ വിപുലമായ ഓപ്ഷനുകൾ എസ്‌സിപിയുടെ വൈദഗ്ധ്യം കൂടുതൽ മെച്ചപ്പെടുത്തുന്നു. ദൈനംദിന പ്രവർത്തനങ്ങൾക്കോ ​​വലിയ തോതിലുള്ള ഡാറ്റാ മൈഗ്രേഷനുകൾക്കോ ​​ആകട്ടെ, ഈ സാങ്കേതിക വിദ്യകൾ മനസ്സിലാക്കുന്നത് സുരക്ഷിതവും വിശ്വസനീയവുമായ ഫയൽ കൈമാറ്റങ്ങൾ ഉറപ്പാക്കുന്നു.