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.