Failide ülekandmine kaugjuhtimispuldist kohalikku SCP abil

Failide ülekandmine kaugjuhtimispuldist kohalikku SCP abil
Shell

Failide turvaline kopeerimine: SCP kasutamise juhend

Secure Copy Protocol (SCP) on võimas tööriist failide ja kataloogide turvaliseks edastamiseks kaugserveri ja kohaliku masina vahel. Kui kasutate oma serverile juurdepääsuks sageli SSH-d, võib teadmine, kuidas SCP-d tõhusalt kasutada, teie töövoogu sujuvamaks muuta, tagades, et saate kiiresti ja turvaliselt kopeerida olulisi faile kaugserverist kohalikku süsteemi.

Selles juhendis juhendame teid, kuidas kopeerida kaugkaust nimega "foo" teie kohalikku kataloogi aadressil /home/user/Desktop. Olenemata sellest, kas haldate varukoopiaid, juurutate koodi või peate lihtsalt faile teisaldama, muudab SCP-käskude mõistmine teie ülesanded lihtsamaks ja tõhusamaks.

Käsk Kirjeldus
scp -r Kopeerige turvaliselt kogu kataloog kaugjuhtimispuldist kohalikku masinasse.
paramiko.SFTPClient.from_transport() Loob olemasolevast SSH-transpordist SFTP-kliendi.
os.makedirs() Loob kataloogi rekursiivselt, tagades kõigi kesktaseme kataloogide loomise.
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) Lisab automaatselt serveri hosti võtme ilma viipata, kasulik skriptimiseks.
scp.listdir_attr() Loetleb kataloogis olevate failide atribuudid, võimaldades rekursiivse kopeerimise funktsiooni.
paramiko.S_ISDIR() Kontrollib, kas antud tee on kataloog, aidates kaasa rekursiivsele kopeerimisele.
scp.get() Kopeerib faili kaugserverist kohalikku masinasse.

SCP-skriptide üksikasjalik selgitus

Esimene skripti näide demonstreerib scp -r käsk kaugkataloogi kohalikku masinasse kopeerimiseks. The scp käsk, mis tähendab Secure Copy Protocol, on käsurea tööriist, mis kasutab SSH-d failide turvaliseks edastamiseks kaughosti ja kohaliku masina vahel. The -r lipp käsus määrab, et operatsioon peaks olema rekursiivne, mis tähendab, et see kopeerib kõik failid ja kataloogid määratud kataloogis. Käskude struktuur on lihtne: scp -r user@remote_host:/path/to/remote/folder /home/user/Desktop/. Siin user@remote_host määrab kaugkasutaja ja hosti ning /path/to/remote/folder ja /home/user/Desktop/ on vastavalt lähte- ja sihtteed.

Teine näide on shelliskript, mis automatiseerib SCP protsessi. See skript määratleb muutujad kaugkasutaja, hosti ja teede jaoks, muutes selle taaskasutamise ja muutmise lihtsaks. Skript kasutab scp -r Bashi skripti sees failide ülekandmiseks, mis aitab stsenaariumides, kus on vaja korduvaid ülekandeid. See sisaldab ka teavitussõnumit, mis teavitab kasutajat ülekande lõppemisest. Kolmas näide kasutab Pythonit koos Paramiko teegiga, mis on eriti kasulik keerukamate või automatiseeritud töövoogude jaoks. Skript seadistab SSH-kliendi ja kasutab paramiko.SFTPClient.from_transport() meetod SFTP-seansi loomiseks. Seejärel määratleb see funktsiooni failide rekursiivseks kopeerimiseks kaugserverist kohalikku kataloogi kasutades scp.listdir_attr() ja paramiko.S_ISDIR() failide ja kataloogide eristamiseks. See lähenemine on kasulik neile, kes eelistavad Pythonis skriptimist ja peavad integreerima failiedastusfunktsiooni suurematesse automatiseerimisskriptidesse.

SCP kasutamine failide edastamiseks kaugserverist kohalikku masinasse

Shell Script SCP jaoks

# 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 edastuse automatiseerimine shelliskriptiga

Shell Script SCP automatiseerimiseks

#!/bin/bash
# This script automates the SCP process

# Variables
REMOTE_USER="user"
REMOTE_HOST="remote_host"
REMOTE_PATH="/path/to/remote/folder"
LOCAL_PATH="/home/user/Desktop/"

# Execute SCP command
scp -r ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH} ${LOCAL_PATH}

# Notify user of completion
echo "Files have been copied successfully from ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH} to ${LOCAL_PATH}"

Pythoni skript SCP-failide edastamiseks

Pythoni skript Paramiko raamatukogu abil

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 täiustatud kasutamine: näpunäited ja nipid

Lisaks põhikasutusele scp failide ja kataloogide kopeerimiseks on mitu täiustatud tehnikat ja valikut, mis võivad teie failiedastuskogemust täiustada. Üks kasulik funktsioon on võimalus piirata ülekande ajal kasutatavat ribalaiust, mis võib olla eriti kasulik piiratud võrguressurssidega töötamisel. Seda on võimalik saavutada kasutades -l valik, millele järgneb näiteks ribalaiuse piirang kilobittides sekundis, scp -r -l 1000 user@remote_host:/path/to/remote/folder /home/user/Desktop/. Teine kasulik valik on -C lipp, mis võimaldab tihendamist, mis võib kiirendada suurte failide edastamist.

Turvalisus on veel üks kriitiline aspekt, mida kasutamisel tuleb arvestada scp. Kuigi scp kasutab turvaliste ülekannete jaoks oma olemuselt SSH-d, on turvalisuse suurendamiseks täiendavaid samme. Näiteks SSH-võtmete kasutamine autentimiseks paroolide asemel võib oluliselt parandada turvalisust ja mugavust. Lisaks saate määrata erineva SSH-pordi, kasutades -P valik, kui teie server ei kasuta vaikeporti 22. Näiteks scp -P 2222 -r user@remote_host:/path/to/remote/folder /home/user/Desktop/ võimaldab teil luua ühenduse serveriga, mis töötab SSH-ga pordis 2222.

Korduma kippuvad küsimused ja vastused SCP kohta

  1. Kuidas kopeerida faili kohalikust failist SCP abil kaugjuhtimisseadmesse?
  2. Sa võid kasutada scp local_file user@remote_host:/path/to/remote/directory.
  3. Kuidas ma saan kontrollida SCP ülekande edenemist?
  4. Kasuta -v valik paljusõnalise režiimi lubamiseks: scp -v -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  5. Kas ma saan SCP-d kasutades failiatribuute säilitada?
  6. Jah, kasuta -p võimalus säilitada muutmisaegu, juurdepääsuaegu ja režiime: scp -p -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  7. Kuidas kasutada SCP-d erineva SSH-võtmega?
  8. Määrake SSH-võti nupuga -i valik: scp -i /path/to/key -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  9. Kuidas SCP-ga suuri failiedastusi käsitleda?
  10. Kasuta -C tihendamise võimalus ja -l ribalaiuse piiramise võimalus: scp -C -l 1000 -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  11. Kuidas faile SCP-ga teise SSH-pordi kaudu üle kanda?
  12. Kasuta -P pordi määramise võimalus: scp -P 2222 -r user@remote_host:/path/to/remote/folder /home/user/Desktop/.
  13. Kas SCP saab hakkama sümboolsete linkidega?
  14. Jah, -r suvand kopeerib nii sümboolsed lingid kui ka failid ja kataloogid.
  15. Mis juhtub, kui SCP ülekanne katkeb?
  16. Käivitage uuesti scp käsk edastuse jätkamiseks; see jätab vahele failid, mis olid juba kopeeritud.
  17. Kuidas kasutada SCP-d skriptis parooliga?
  18. Selle asemel on soovitatav kasutada SSH-klahve, kuid võite kasutada selliseid tööriistu nagu sshpass parooli autentimiseks skriptides.

Viimased mõtted SCP kasutamise kohta

Arusaamine, kuidas kasutada SCP-d failide ja kataloogide ülekandmiseks kaugserverist kohalikku masinasse, võib teie töövoo tõhusust oluliselt suurendada. Nii põhikäskude kui ka täiustatud tehnikate valdamisega saate tagada turvalise ja tõhusa andmeedastuse. Olenemata sellest, kas kopeerite üksikuid faile või terveid katalooge, automatiseerite ülesandeid skriptidega või kasutate Pythonit keerukamate toimingute jaoks, jääb SCP teie andmehaldusvajaduste rahuldamiseks mitmekülgseks ja võimsaks tööriistaks.