Transferir arquivos no Linux é uma tarefa comum que todo administrador de sistema deve saber, especialmente ao transferir arquivos entre sistemas locais ou remotos através de redes.
O Linux oferece duas ferramentas populares para esse propósito: SCP (Secure Copy) e Rsync . Ambas fornecem uma maneira segura e conveniente de transferir arquivos entre máquinas locais ou remotas.
Neste artigo, exploraremos como usar os comandos SCP e Rsync para transferir arquivos, abrangendo transferências de arquivos locais e remotas.
1. Entendendo o scp (Secure Copy Protocol) no Linux
O comando scp é um programa de linha de comando usado para copiar com segurança arquivos e diretórios entre dois hosts usando SSH (Secure Shell) , o que significa que os dados são transferidos de maneira criptografada durante a transferência de arquivos pela Internet.
A sintaxe geral básica para usar o scp é a seguinte:
scp [opções] arquivo_origem destino
Aqui está a explicação do comando:
- source_file : O arquivo ou diretório que você deseja copiar.
- destino : O local onde você deseja copiar o arquivo ou diretório.
Copiando arquivos localmente no Linux
Se você quiser copiar um arquivo de um diretório para outro na mesma máquina, você pode usar:
scp ~/documento.txt /tmp
Copiando arquivos para um servidor remoto
Para copiar arquivos da sua máquina local para um servidor remoto, você precisará mencionar o endereço IP do servidor remoto e o caminho de destino.
scp ~/document.txt nomedeusuario@192.168.1.100 :/home/nomedeusuario
Copiando arquivos de um servidor remoto
Para copiar um arquivo de um servidor remoto para sua máquina local, basta inverter a origem e o destino:
scp nomedeusuario@192.168.1.100 :/home/nomedeusuario/documento.txt /tmp
Para copiar um diretório inteiro, use opção a -r
(que significa recursiva):
scp -r ~/linehostcloud /tmp
2. Entendendo o rsync no Linux
O comando rsync é outra ferramenta de linha de comando de transferência de arquivos amplamente utilizada para transferir arquivos e diretórios entre a origem e o destino, sendo comumente usada para sincronizar diretórios.
A sintaxe básica para usar o rsync é:
rsync [opções] [origem] [destino]
Transferir arquivos localmente
-a
para habilitar o modo de arquivamento, que preserva permissões, propriedade e carimbos de data/hora.A opção
-v
significa verbose, que mostra o progresso da transferência do arquivo.rsync -av ~/minhapasta /backup
Transferir arquivos para um servidor remoto
Para transferir arquivos para um servidor remoto, o rsync usa SSH por padrão. Aqui você precisa especificar o endereço IP e a localização do servidor remoto:
rsync -av ~/minhapasta nomedeusuario@192.168.1.100 :/home/nomedeusuario
O comando acima será transferido minhapasta
para o servidor remoto e, se você executá-lo novamente,o rsync copiará apenas os arquivos que foram alterados.
Transferir arquivos de um servidor remoto
Para transferir arquivos de um servidor remoto para sua máquina local, use:
rsync -av nomedeusuario@192.168.1.100 :/home/nomedeusuario/minhapasta /backup
Sincronizando diretórios com Rsync
Um dos principais pontos fortes do rsync é sua capacidade de sincronizar diretórios, o que significa que você pode manter dois diretórios sincronizados, estejam eles na mesma máquina ou em máquinas diferentes.
Por exemplo, para sincronizar um diretório local com um diretório remoto:
rsync -av /local/diretório/ nomedeusuário@host_remoto:/diretório/remoto/
Para sincronizar um diretório remoto com um diretório local, você inverteria a origem e o destino no comando rsync.
rsync -av nomedeusuário@host_remoto:/diretório/remoto/ /diretório/local/
Se uma transferência for interrompida devido a uma falha de rede ou outros motivos, você pode retomá-la usando a opção --partial
que permite retomar a transferência de arquivos de onde parou:
rsync -av --partial /caminho/para/a/origem nomedeusuario@host_remoto:/caminho/para/o/destino
Conclusão
Transferir arquivos no Linux é uma tarefa direta com ferramentas como scp e rsync . Enquanto scp é simples e seguro, rsync oferece recursos mais avançados como sincronização e eficiência.
Entender como usar essas ferramentas de forma eficaz ajudará você a gerenciar seus arquivos e dados em sistemas locais e remotos.