SSH: 04 – Transferindo arquivos com o SCP

Para usar o scp são necessárias duas máquinas: uma com a aplicação servidor instalada e outra com a aplicação cliente e ambas executando. O objetivo será transferir arquivos de uma máquina para outra. Veremos como isso poderá ser feito.

Para uso do tutorial será usado a máquina classroom para transferir um arquivo à máquina de nome livingroom:

Um exemplo de uso do scp:

scp image001.jpg 10.1.1.88:/home/henriquetg/

Será transferida a imagem imagem001.jpg, sendo que a máquina de destino tem IP 10.1.1.88. Então é digitado dois pontos após o nome da máquina destino e antes do diretório em que será transferida, nesse caso o diretório home do usuário henriquetg.

Já que temos o nome da máquina (classroom), podemos usá-lo ao invés do IP desde que o servidor DNS esteja executando. A configuração deve estar em ~/.ssh/config, ou em uma entrada no arquivo /etc/hosts da máquina livingroom. O comando é:

scp imagem001.jpg livingroom:/home/henriquetg

O comando foi simplificado já que o nome da máquina é conhecido. Adicionalmente, não é necessário digitar o nome do diretório home já que ele pode ser simplificado por um ponto:

scp imagem001.jpg livingroom:.

Nesse outro exemplo /home/henriquetg, foi substituído pelo acento ~. Obtendo-se o comando:

scp imagem001.jpg livingroom:~

Caso deseje-se copiar um diretório inteiro digita-se a flag -r para cópia recursiva do diretório, conforme comando abaixo:

scp -r minha_pasta livingroom:~

Agora o diretório minha_pasta e o seu conteúdo serão copiados. Outra flag útil é -p que preserva as datas de modificação, criação dos arquivos, usando-se o comando abaixo:

scp -rp minha_pasta livingroom:~

No entanto, se o usuário logado na máquina de origem (classroom) não existir na máquina de destino (livingroom) é necessário adicioná-lo com @ para ser o usuário utilizado na transferência e autorizado pela máquina de destino:

scp imagem001.jpg henriquetg@livingroom:~

Então a senha do usuário henriquetg será requisitada com o diretório /home/henriquetg como diretório de destino.

Caso outra porta que não seja a 22 (padrão) esteja sendo usada é necessário adicionar a flag-P precisa ser adicionada e a porta especificada:

scp -P 4022 imagem001.jpg henriquetg@livingroom:~

Caso queira copiar um arquivo da máquina remota (até então a de destino) para a sua local (até então a de origem) pode ser usado o comando abaixo, especificando o arquivo que deve ser copiado da máquina remota, nesse caso a imagem imagem001.jpg da máquina remota (livingroom):

scp @livingroomroom:~/imagem001.jpg .


Pronto, esses são os exemplos para transferência de arquivos com scp. 

O próximo tutorial mostrará como criar túneis com o SSH, avance clicando aqui.

Leave a comment

Design a site like this with WordPress.com
Get started