El protocolo SCP implementa la transferencia de ficheros.
El cliente se conecta a la máquina remota usando SSH y solicita la ejecución
de un programa servidor (normalmente el mismo programa cliente scp
es capaz de funcionar
como servidor).
Para la subida de ficheros el cliente alimenta al servidor con los ficheros que deberán ser cargados, incluyendo opcionalmente los atributos básicos como permisos y fechas.
Para las descargas el cliente envía una solicitud indicando los ficheros y directorios que deben ser descargados.
Veamos un ejemplo:
nereida:~> scp mm.c orion:/tmp/ mm.cLa sintáxis de scp es:
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2Es posible copiar entre dos máquinas remotas emitiendo la orden desde una tercera máquina:
portatil@user:/tmp$ scp europa:/tmp/prueba.batch nereida:/tmp/prueba.batchEs posible usar comodines (wildcards), protegiéndolos de la shell local:
portatil@user:/tmp$ scp 'europa:/tmp/*.tex' nereida:/tmp/Es posible copiar de dos máquinas remotas a una tercera:
pp2@europa:~/Lnet-parscp$ scp orion:Makefile.PL nereida:texput.log beowulf: pp2@europa:~/Lnet-parscp$ ssh beowulf ls -ltr | tail -2 -rw-r--r-- 1 casiano casiano 615 mar 26 13:56 texput.log -rw-r--r-- 1 casiano casiano 1485 mar 26 13:56 Makefile.PLHemos copiado desde la máquina orion y desde la máquina nereida diferentes ficheros. La máquina
beowulf
es la máquina de destino
a la que fueron transferidos.
La opción -r
permite copiar subdirectorios.
La opción -p
permite preservar permisos.
Un comando como este edita dos ficheros en sendos tabs:
vi -p scp://orion/AUTOMATICBACKUPCHECKOUT /home/casiano/europabackup.log
El primero es un fichero ~/AUTOMATICBACKUPCHECKOUT
en una máquina remota con nombre orion
. El segundo
es un fichero local. El editor vim
emite el comando scp
apropiado para copiar el fichero remoto en un fichero temporal.
Durantre la edición, cada vez que salve el fichero
~/AUTOMATICBACKUPCHECKOUT
de orion
, vim
tasladará la orden :w
en el comando scp
adecuado:
:!scp -q '/tmp/v611122/1' 'orion:AUTOMATICBACKUPCHECKOUT'
o bien podemos emitir una orden de edición de un nuevo fichero remoto:
:vsplit scp://casiano@some.machine.com/somefile.txt
Es incluso posible ver los contenidos de un directorio:
:tabedit scp://orion/pp2/