O Linux
rsync
O comando é uma ferramenta poderosa de cópia de copiar e pasta. Aqui estão dez casos de uso comuns que você poderá usar bem em seus próprios sistemas.
A ferramenta RSYNC
O
rsync
A ferramenta copia arquivos e diretórios entre dois computadores. Ele usa um
algoritmo sofisticado
Isso verifica as árvores do diretório para encontrar arquivos no computador de origem que não existem no computador de destino. Esses arquivos são transmitidos para o computador de destino. O que faz o
rync
Tão inteligente é que pode descobrir qual pedaços de
existir
Os arquivos foram modificados e apenas envia o
porções alteradas
.
Você pode usar
rsync
Para copiar arquivos para um local diferente no seu disco rígido, para um disco rígido diferente no mesmo computador, para um
unidade USB conectada externamente
, ou qualquer outro local acessível à rede.
Além disso,
rsync
Opcionalmente pode preservar links simbólicos, links rígidos e arquivos
metadados
como propriedade de arquivos, permissões e tempos de acesso. Para apoiar toda essa funcionalidade,
rsync
tem muitas opções e descobrir tudo isso leva tempo. Coletamos esses 10 exemplos para ajudá -lo a começar. Já escrevemos sobre como fazer backups com
rsync
, então estamos nos concentrando em outros usos aqui.
Para todas as suas muitas opções, a estrutura de um
rsync
O comando é simples. Precisamos fornecer a fonte, o destino e as opções que queremos usar. Você provavelmente encontrará isso
rsync
Já está instalado no seu computador Linux - estava, em todas as nossas máquinas de teste - mas, se não for, definitivamente estará nos repositórios da sua distribuição.
1. Copie arquivos para um diretório diferente
Aqui está um exemplo simples para nos levar. Vamos copiar os arquivos do diretório "arquivos de projeto" para o diretório "documentos". Estamos usando duas opções, o
-a
(arquivo) opção e a
-v
(verbose) opção. A opção verbose diz
rsync
para explicar o que está fazendo o que faz. O
arquivo
A opção preserva a propriedade de arquivos e alguns outros itens que examinaremos em breve.
Usando
ls
Na pasta "documentos" mostra que os arquivos foram copiados.
Enquanto
rsync
está funcionando, os arquivos são listados à medida que são copiados. Disseram -nos:
- O número de bytes que são enviados.
-
O número de bytes recebidos. Antes da transferência de arquivos, ocorre,
rsynctem que descobrir quais arquivos precisam ser transferidos. Para fazer isso, algumas informações sobre os arquivos no destino devem ser recuperadas porrsync. Esta informação está contida nos bytes recebidos. - A velocidade da transferência.
- O tamanho total dos arquivos copiados.
- A "aceleração". Essa é a proporção do tamanho total dividido pela soma dos bytes enviados e recebidos. Quanto maior esse número, mais eficiente a transferência.
Modificamos o arquivo de texto no diretório de origem e repetimos o
rsync
comando.
Desta vez, o único arquivo que precisa ser atualizado é o arquivo de texto que modificamos. A figura de aceleração agora é 30.850. É o quanto é mais eficiente copiar a parte modificada desse arquivo único do que copiar todos os arquivos.
O
-a
(Archive) A opção realmente representa uma coleção de outras opções. É o mesmo que usar todas essas opções:
- r : Trabalhe recursivamente através de árvores de diretório no diretório de origem e copie -as para o diretório de destino, criando -as se ainda não existirem lá.
- eu : Copie symblinks como symblinks.
- p : Preservar as permissões de arquivos.
- t : Preservar os tempos de modificação do arquivo.
- g : Preserve as permissões do grupo.
- o : Preserve a propriedade do arquivo.
- D : Copie arquivos especiais e arquivos de dispositivo. Arquivos especiais podem ser itens centrados na comunicação que são tratados como arquivos, como soquetes e tubos de primeira entrada, primeiro a sair (FIFOS). Os arquivos de dispositivo são arquivos especiais que fornecem acesso a dispositivos e pseudo-dispositivos.
Esta é uma combinação tão frequentemente usada que
rsync
fornece o
-a
(Archive) Opção como uma maneira abreviada de invocar todos eles.
2. Copie um diretório para um diretório diferente
Se você olhar para o anterior
rsync
Comando, você verá um slash para a frente "/" no caminho do arquivo do diretório de origem. Isso é significativo. Diz
rsync
Para copiar o
conteúdo
do diretório. Se você não fornecer a barra para a frente,
rsync
vai copiar o diretório
e
seu conteúdo.
Desta vez, o nome do diretório é adicionado ao nome do arquivo conforme eles estão listados. Se olharmos para dentro do diretório de destino, veremos a pasta de origem foi copiada com os arquivos dentro dele.
3. Copie um diretório para uma unidade diferente
Copiar arquivos para outro local no mesmo disco rígido não oferece proteção contra um conduzir falha . Se essa unidade desistir do fantasma, você perdeu as cópias de origem e destino desses arquivos. Copiá -los para outro disco rígido é uma maneira muito mais robusta de proteger seus dados. Tudo o que precisamos fazer é fornecer o caminho correto para a unidade de destino.
Olhar para o outro disco rígido nos mostra o diretório e os arquivos foram copiados para ele.
4. Fazendo uma corrida a seco primeiro
Antes de vermos como
rsync
Pode excluir os arquivos para nós, vamos ver como podemos fazer
rsync
Realize uma corrida a seco.
Em uma corrida a seco,
rsync
passa pelos movimentos de executar as ações que pedimos, mas na verdade não as faz. Ele relata o que teria acontecido se o comando tivesse sido executado. Dessa forma, podemos garantir que o comando faça exatamente o que esperamos.
Para forçar uma corrida a seco, usamos o
--funcionamento a seco
opção.
Os arquivos que teriam sido copiados estão listados para nós e obtemos as estatísticas usuais, seguidas pela mensagem
(FUNCIONAMENTO A SECO)
para que sabemos que nada realmente ocorreu.
5. Excluindo arquivos no diretório de destino
O
--excluir
a opção informa
rsync
deletar
arquivos e diretórios
no
destino
diretório que não está no diretório de origem. Isso significa que o diretório de destino será uma cópia exata do diretório de origem. Seremos prudentes e usaremos o
--funcionamento a seco
opção primeiro.
Somos informados de que dois arquivos serão excluídos. Se tivermos certeza de que não nos importamos que eles sejam excluídos, podemos remover o
--funcionamento a seco
opção e realizar o comando de verdade.
Desta vez, o conteúdo dos diretórios é sincronizado e os dois arquivos extras são excluídos.
6. Excluindo os arquivos de origem
Você pode optar por excluir os arquivos de origem após um
transferência bem -sucedida
, fazendo
rsync
opere mais como um movimento do que uma cópia. Se a transferência não foi bem -sucedida, os arquivos de origem não serão excluídos. A opção que precisamos usar é
--REMOVE-FULES SOURCO
.
Observe que os arquivos podem ser excluídos, mesmo que nenhum arquivo seja transferido. Isso porque se
rsync
cheques, e todos os arquivos já estão no diretório de destino e não há nada para
rsync
pendência,
rsync
considera que uma transferência bem -sucedida.
Também,
rsync
apenas exclui o
arquivos
do diretório de origem. Ele não exclui o diretório de origem nem os subdiretos, apenas os arquivos neles. Podemos ver isso usando o
-R
opção (recursiva) com
ls
, no diretório de origem.
7. Copie arquivos para um computador remoto
Para sincronizar pastas com um computador remoto,
rsync
deve ser instalado nos dois computadores. Configure a comunicação SSH entre os dois computadores antes de tentar usar
rsync
para o computador remoto.
Você precisa fazer login remotamente como usuário regular no computador remoto para
rsync
trabalhar. Não importa se você usa um ID e senha para fazer login ou se você configurou as chaves SSH para Seguro
sem senha
acesso, mas se você não pode fazer login como usuário, então
rsync
também não funcionará.
Se você efetuar login com uma senha,
rsync
o levará a senha. Se você usa as teclas SSH para registrar, no processo é contínuo.
A única coisa extra que você precisa fazer é adicionar o nome da conta do usuário e o endereço IP do computador remoto ao início do caminho do arquivo de destino. Use um sinal em sinalização “
@
”Para separar o nome de usuário do nome do computador ou endereço IP e um cólon“
:
”Para separar o nome do computador ou
endereço de IP
do caminho do diretório.
Recebemos as mesmas informações relatadas para nós que quando estamos copiando arquivos localmente.
8. Inclua ou exclua arquivos ou diretórios
Você pode ter arquivos e diretórios no diretório de origem que não deseja copiar para o computador de destino. Você pode
exclui -los
usando o
--excluir
opção. De maneira semelhante, você pode optar por incluir arquivos e diretórios específicos com o
--incluir
opção.
A peculiaridade é que, se você usar o
--incluir
Opção por si só, todos os arquivos são copiados, como normal - incluindo seus arquivos especificamente incluídos. Para copiar apenas os arquivos incluídos que você precisa
--excluir
todo o resto.
Você pode usar tantos
--incluir
e
--excluir
opções em seu comando como quiser, mas certifique -se de colocar seu
--incluir
opções antes do seu
--excluir
opções. Além disso, verifique se você tem uma barra para a frente no caminho do arquivo de origem.
Este comando copia apenas os arquivos de código -fonte C e Arquivos de dados CSV para o computador de destino.
Os únicos arquivos copiados são os que incluíram especificamente.
9. Compressa arquivos na transferência
O
-z
(compactar) a opção causa
rsync
Para comprimir os arquivos transferidos. No entanto, eles não são armazenados como arquivos compactados no computador de destino, eles são compactados apenas durante a própria transferência. Isso pode acelerar transferências longas.
10. Monitorando o progresso
Falando em longas transferências, podemos adicionar algumas estatísticas para que possamos ver o progresso da transferência.
O
-P
(Parcial, progresso) a opção realmente adiciona duas opções,
--parcial
e
--progresso
. O
--parcial
a opção informa
rsync
Para manter os arquivos parcialmente transferidos se uma transferência falhar. Isso economiza tempo quando a transferência é reiniciada.
O
--progresso
A opção imprime, para cada arquivo, os dados transferidos em bytes e, como porcentagem, a velocidade da transferência, o tempo gasto, o número do arquivo que está sendo transferido e a contagem dos arquivos restantes.
A saída rola passando rapidamente e é difícil de ler. Você pode melhorar as coisas levemente removendo o
-v
(verbose) opção do comando. Mesmo assim, ainda é difícil de ler, pois passa.
Muitas vezes, é mais útil monitorar o progresso da transferência geral. Você pode fazer isso com a opção –info e passá -la “Progress2” como um parâmetro.
Como CP em esteróides
O
rsync
O comando é rápido, flexível e vale a pena o tempo necessário para se familiarizar com ele. A forma básica de um
rsync
comando com o
-av
Não é difícil lembrar opções, diretório de origem e diretório de destino.
Para muitos casos de uso, é tudo o que você precisa. Fique confortável com isso e o resto virá facilmente.
- › Como as VPNs baratas podem custar mais do que você espera
- › Wyze está baixo, não é só você
- › Esqueça os desktops de jogos: os laptops para jogos são quase tão rápidos
- › Seu próximo dispositivo doméstico inteligente pode ter 5g
- › Pare de usar o teclado e o mouse que vieram com seu PC
- › Bose QuietComfort Earbuds 2 Revisão: Um passo à frente para o áudio de cancelamento de ruído