Cursos / Redes de Computadores / Redes de Computadores II / Aula

arrow_back Aula 10 - Transferência e Sincronização de Arquivos

Utilizando o scp

A utilização do comando scp é análoga a utilização do comando de cópia de arquivos locais no Linux, o comando cp (copy). A diferença é que, com o scp, você está copiando arquivos entre diferentes hosts, ao invés de estar copiando arquivos somente de um local para outro dentro do sistema de arquivos do seu computador.

A utilização normal do comando cp no terminal de um sistema Linux se dá da seguinte maneira:

Este comando copiará o arquivo helloworld.java do diretório /home/imd/ para o diretório /home/imd/tecnico/.

Agora vamos dizer que eu esteja no meu computador, em casa, e precise copiar um arquivo local chamado helloworld.java para o meu laptop do trabalho (máquina remota). No computador da minha residência, o caminho de diretórios (localização) para o meu arquivo helloworld.java é /tmp/helloworld.java. No meu laptop, o diretório destino que desejo que o arquivo seja armazenado é /home/imd/tecnico/; Porém, como este diretório está no computador remoto, eu preciso adicionar um prefixo com as minha credenciais (nome de usuário) para autenticação na máquina remota.

Então, para enviar um arquivo da máquina local para um máquina remota, o seguinte comando pode ser utilizado no terminal (para o exemplo descrito anteriormente, considerando que o nome de usuário é aluno e o endereço IP da meu laptop remoto é 10.1.1.1):

Note que este prefixo é familiar: é o mesmo argumento que você utilizou no comando ssh em aulas passadas para se conectar a uma máquina remota. Essa é a mesma autenticação utilizada para conexão via SSH, haja vista que o como já foi dito anteriormente, o scp utiliza o ssh para se conectar ao dispositivo remoto. Note que existe um caractere dois pontos (:) entre o prefixo e o caminho de diretórios. Você poderá então ser solicitado a entrar com a senha do usuário aluno na máquina 10.1.1.1. Devidamente autenticado, a cópia do arquivo será iniciada, permitindo que o usuário verifique o progresso da transferência de todos arquivos (neste caso é somente um arquivo) até o seu término.

Agora você sabe transferir arquivos do seu computador residencial para o seu laptop que se encontra em outro lugar. Para fazer uma cópia inversa (do laptop remoto para o computador local), basta inverter a ordem dos dois arquivos:

Um exemplo mais útil pode ser a transferência de um diretório completo, do seu computador para o laptop. Suponha que temos um diretório local com diversos arquivos e subdiretórios dentro (/home/imd/tecnico/2017/dados) e queria copiar para o computador remoto dentro do diretório /tmp/redes. Para copiar o diretório dados e todos os arquivos e sub-diretórios contidos neles, usamos a flag –r (recursivo) junto ao comando scp:

Note que não foi incluído o nome do diretório dados no caminho do computador remoto. O comando scp irá criar uma cópia do diretório dados dentro de /tmp/redes (esse caminho já deverá existir!). Caso o caminho de diretórios /tmp/redes já existisse no computador remoto, todos os arquivos dentro deles seriam sobreescritos.

Versão 5.3 - Todos os Direitos reservados