Comando básico de Linux: scp para copiar archivos de forma remota

El comando básico de Linux -seq imprime una secuencia de números

prefacio

A veces es inevitable copiar el archivo a otro servidor, luego puede usar el comando scp para copiar el archivo de forma remota. El comando scp se basa en el protocolo SSH. Durante el proceso de copia, los datos se cifran, lo cual es mejor que el texto sin formato. La transmisión es más segura.

1. Introducción de comandos

Como de costumbre, primero vaya a la documentación de ayuda de scp para ver la descripción general de los comandos

NAME
     scp — secure copy (remote file copy program)
DESCRIPTION
     scp copies files between hosts on a network.  It uses ssh(1) for data transfer, and uses the same
     authentication and provides the same security as ssh(1).  scp will ask for passwords or passphrases if
     they are needed for authentication.

     File names may contain a user and host specification to indicate that the file is to be copied to/from
     that host.  Local file names can be made explicit using absolute or relative pathnames to avoid scp
     treating file names containing ‘:’ as host specifiers.  Copies between two remote hosts are also per‐
     mitted.

El comando scp (copia segura) se usa principalmente para copiar archivos de forma remota. Puede copiar archivos o directorios entre múltiples sistemas Linux. Es algo similar a la función del comando cp, pero el alcance de la copia es otro host en la red.

2. Sintaxis de comandos

formato de sintaxis del comando scp: archivo de parámetros scp

SYNOPSIS
     scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port]
         [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2

3. Parámetros comunes

Hay tantos parámetros en el documento, y se resumen algunos de los más utilizados;

     -1      Forces scp to use protocol 1.

     -2      Forces scp to use protocol 2.

     -3      Copies between two remote hosts are transferred through the local host.  Without this option
             the data is copied directly between the two remote hosts.  Note that this option disables the
             progress meter.

     -4      Forces scp to use IPv4 addresses only.

     -6      Forces scp to use IPv6 addresses only.

     -B      Selects batch mode (prevents asking for passwords or passphrases).

     -C      Compression enable.  Passes the -C flag to ssh(1) to enable compression.

     -c cipher
             Selects the cipher to use for encrypting the data transfer.  This option is directly passed to
             ssh(1).

     -F ssh_config
             Specifies an alternative per-user configuration file for ssh.  This option is directly passed
             to ssh(1).

     -i identity_file
             Selects the file from which the identity (private key) for public key authentication is read.
             This option is directly passed to ssh(1).

     -l limit
             Limits the used bandwidth, specified in Kbit/s.

     -o ssh_option
             Can be used to pass options to ssh in the format used in ssh_config(5).  This is useful for
             specifying options for which there is no separate scp command-line flag.  For full details of
             the options listed below, and their possible values, see ssh_config(5).

                   AddressFamily
                   BatchMode
                   BindAddress
                   CanonicalDomains
                   CanonicalizeFallbackLocal
                   CanonicalizeHostname
                   CanonicalizeMaxDots
                   CanonicalizePermittedCNAMEs
                   CertificateFile
                   ChallengeResponseAuthentication
                   CheckHostIP
                   Cipher
                   Ciphers
                   Compression
                   CompressionLevel
                   ConnectionAttempts
                   ConnectTimeout
                   ControlMaster
     -2      Forces scp to use protocol 2.

     -3      Copies between two remote hosts are transferred through the local host.  Without this option
             the data is copied directly between the two remote hosts.  Note that this option disables the
             progress meter.

     -4      Forces scp to use IPv4 addresses only.

     -6      Forces scp to use IPv6 addresses only.

     -B      Selects batch mode (prevents asking for passwords or passphrases).

     -C      Compression enable.  Passes the -C flag to ssh(1) to enable compression.

     -c cipher
             Selects the cipher to use for encrypting the data transfer.  This option is directly passed to
             ssh(1).

     -F ssh_config
             Specifies an alternative per-user configuration file for ssh.  This option is directly passed
             to ssh(1).

     -i identity_file
             Selects the file from which the identity (private key) for public key authentication is read.
             This option is directly passed to ssh(1).

     -l limit
             Limits the used bandwidth, specified in Kbit/s.

     -o ssh_option
             Can be used to pass options to ssh in the format used in ssh_config(5).  This is useful for
             specifying options for which there is no separate scp command-line flag.  For full details of
             the options listed below, and their possible values, see ssh_config(5).

Parámetros comunes:

opciones de comando significado
-1 Usar protocolo ssh versión 1
-2 Usar el protocolo ssh versión 2
-4 usar ipv4
6 usar ipv6
-B ejecutar en modo por lotes
-C usar compresión
-F Especifique el archivo de configuración ssh
-l Especificar límite de ancho de banda
-o Especifica las opciones ssh a usar
-PAG Especifique el número de puerto del host remoto
-pag Conservar la hora de modificación de archivos, la hora de acceso y el modo de permiso
-q No muestra el progreso de la copia
-r copiar recursivamente

4. Ejemplos de referencia

4.1 Copia remota de local a otro servidor

4.1.1 Copiar archivos al servidor remoto

Formato de comando: copiar archivo

El primer método: especifique el nombre de usuario, copie el archivo de forma remota en el directorio de otro servidor e ingrese la contraseña después de ejecutar el comando.
scp archivo_local nombre_de_usuario_remoto@ip_remota:carpeta_remota

El segundo método: especifique el nombre de usuario, copie el archivo de forma remota a otro servidor, el archivo se puede modificar a otro nombre, lo que equivale a cambiar el nombre de la copia remota; ingrese la contraseña después de ejecutar el comando.
scp archivo_local nombre_de_usuario_remoto@ip_remota:archivo_remoto

El tercer método: sin especificar el nombre de usuario, copie el archivo de forma remota al directorio de otro servidor.Después de ejecutar el comando, debe ingresar el nombre de usuario y la contraseña
scp local_file remote_ip:remote_folder

El cuarto método: sin especificar un nombre de usuario, copie el archivo de forma remota a otro servidor, y el archivo se puede modificar a otro nombre, lo que equivale a cambiar el nombre de la copia remota; ingrese la contraseña después de ejecutar el comando.
scp archivo_local ip_remota:archivo_remoto

Presentación del caso:

scp /usr/local/nginx/conf/nginx.conf [email protected]:/usr/local/nginx/conf

scp /usr/local/nginx/conf/nginx.conf [email protected]:/usr/local/nginx/conf/nginx.conf.backup

scp /usr/local/nginx/conf/nginx.conf 192.168.45.128:/usr/local/nginx/conf

scp /usr/local/nginx/conf/nginx.conf 192.168.45.128:/usr/local/nginx/conf.backup

4.1.2 Copiar directorio al servidor remoto

Formato de comando: copiar directorio

El primer método: especifique el nombre de usuario y copie de forma remota el directorio en el directorio especificado de otro servidor. Debe usar el parámetro -r para indicar una operación recursiva. Después de ejecutar el comando, ingrese la contraseña scp -r carpeta_local nombre_de_usuario_remoto @ip_remota:
carpeta_remota

El segundo método: sin especificar el nombre de usuario, copie el directorio de forma remota al directorio especificado de otro servidor. Debe usar el parámetro -r para indicar la operación recursiva. Después de ejecutar el comando, ingrese la contraseña scp -r carpeta_local ip_remota
: carpeta_remota

Presentación del caso:

scp -r /tmp/ [email protected]:/
scp -r /tmp/ 192.168.45.128:/

4.2 Copiar del servidor remoto al local

Para copiar de remoto a local, simplemente cambie el orden de los dos últimos parámetros del comando para copiar de local a remoto.

4.2.1 Copiar archivos del servidor remoto al local

La primera forma: especifique el nombre de usuario remoto @ especifique IP: el archivo que se copiará en ./, donde ./ significa copiar el archivo en el servidor remoto a la ruta actual del servidor local.
scp nombre_de_usuario_remoto@ip_remota:archivo_remoto ./

La segunda forma: especifique el nombre de usuario remoto@IP especificada: el archivo que se copiará en el servidor local especifique el nombre de usuario, especifique el directorio,
etc.

Presentación del caso:

scp [email protected]:/usr/local/nginx/conf/nginx.conf 
/usr/local/conf/
scp -r [email protected]:/usr/local/nginx/ [email protected]:/usr/local/

Por supuesto, también puede copiar el directorio, el método sigue siendo el mismo y agregar el parámetro -r al frente, por lo que no lo demostraré aquí.

Además de seleccionar la IP para copiar archivos, también puede usar el nombre de host para copiar, siempre que el nombre de host deba asignarse primero a los hosts.

cat /etc/hosts
192.168.45.166 localhost166
192.168.45.128 localhost128

scp -r root@localhost128:/usr/local/nginx/ root@localhost166:/usr/local

Resumir

El comando scp también se usa a menudo. Solo necesita entender cómo usarlo de local a remoto, o de remoto a local. Si cree que el contenido anterior está bien, puede darle me gusta y apoyarlo.
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/rhn_111/article/details/130152967
Recomendado
Clasificación