Como configurar o daemon rsync no Linux
- 3719
- 369
- Wendell Legros
Em um artigo anterior, vimos alguns exemplos básicos de como usar rsync
no Linux para transferir dados com eficiência. Como vimos, para sincronizar dados com uma máquina remota, podemos usar um shell remoto como ssh
ou o daemon rsync
. Neste artigo, vamos nos concentrar na última opção, e veremos como instalar e configurar rsyncd
Em algumas das distribuições Linux mais usadas.
Neste tutorial, você aprenderá:
- Como instalar e configurar o daemon rsync
Requisitos de software e convenções usadas
Categoria | Requisitos, convenções ou versão de software usada |
---|---|
Sistema | Independente da distribuição |
Programas |
|
Outro | Não são necessários requisitos especiais para seguir este tutorial |
Convenções | # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular |
Instalação
Instalando o daemon rsync
é realmente fácil, já que o pacote e suas dependências estão disponíveis por padrão em todos os principais repositórios de distribuições Linux. Sobre Debian
e Archlinux
, Os arquivos relacionados ao daemon rsync estão incluídos o rsync
pacote, então tudo o que precisamos fazer é instalar o último. No Debian, podemos usar o gerente de pacotes APT:
$ sudo apt-get install rsync
No Archlinux, em vez disso, usamos Pacman:
$ sudo pacman -s rsync
Em distribuições como o fedora, em vez disso, rsyncd
, O daemon rsync, é distribuído em seu próprio pacote, rsync-daemon
. Nas versões recentes da distribuição, para instalá -la, podemos usar o DNF
gerenciador de pacotes. O principal pacote RSYNC será instalado como uma dependência:
$ sudo dnf install rsync-daemon
O arquivo de configuração do RSYNCD
Uma vez rsyncd
está instalado, podemos configurá -lo usando o /etc/rsyncd.conf
arquivo. O arquivo já está incluído nos pacotes Archlinux e Fedora, enquanto no Debian deve ser criado do zero. Aqui está o conteúdo do arquivo no Fedora:
# /etc /rsyncd: arquivo de configuração para o modo daemon rsync # consulte o rsyncd.Conf Man Page para mais opções. # Configuração Exemplo: # uid = ninguém # gid = ninguém # use chroot = sim # max conexões = 4 # pid arquivo =/var/run/rsyncd.pid # exclude = perdido+encontrado/ # transferência logging = sim # timeout = 900 # ignore não legível = sim # não compressa = *.gz *.TGZ *.fecho eclair *.z *.Z *.rpm *.Deb *.bz2 # [ftp] # caminho = /home /ftp # comentário = área de exportação de ftp
Todos os parâmetros são comentados e exibidos como um exemplo de configuração: eles representam um bom ponto de partida para nossa discussão. A primeira coisa que devemos notar é como um rsyncd módulo
é definido:
[FTP] PATH = /HOME /FTP Comentário = Área de Exportação FTP
Um módulo é definido em uma "estrofe" que começa com a declaração do nome do módulo entre colchetes, neste caso [FTP]
. Um módulo está associado a um diretório no sistema de arquivos, especificado com o caminho
argumento. Todos os parâmetros fornecidos dentro da estrofe são local
, Portanto, eles são aplicados apenas ao módulo relacionado; Configurações fornecidas antes de qualquer estrofe, são global
. Vamos dar uma rápida olhada em alguns deles.
Parâmetros globais
Como acabamos de dizer, os parâmetros globais são os definidos no início do /etc/rsyncd.conf
arquivo, antes de qualquer definição de módulo, ou opcionalmente dentro de um [global]
seção. Aqui vamos discutir alguns dos mais interessantes.
O parâmetro "PID FILE"
Este parâmetro é usado para especificar o caminho de um arquivo em que o rsyncd PID
(ID do processo) será escrito. Por padrão, o lançamento do Daemon será abortado se o arquivo especificado já existir. É possível mudar esse comportamento e deixar o arquivo ser substituído, em vez disso, lançando o daemon rsync com o --dParam = pid -filfile = arquivo
opção.
O parâmetro "Port"
Ao usar este parâmetro global, podemos especificar uma porta alternativa para o daemon rsync. O padrão é TCP
Porta 873. Esta opção pode ser substituída quando o daemon é lançado, usando o --porta
opção.
O parâmetro "endereço"
Podemos usar o global endereço
parâmetro para especificar o endereço que o daemon rsync ouvirá. O endereço especificado no arquivo pode ser substituído lançando o daemon com o --endereço
opção, fornecendo o endereço desejado como argumento.
Além dos parâmetros que vimos acima, na seção global, podemos especificar também Parâmetros do módulo
. Quando o fizermos, os valores dos parâmetros especificados se tornarão os padrão para todos os módulos.
Parâmetros do módulo
Os parâmetros do módulo são os especificados dentro de uma seção de módulo e são aplicados a essa seção apenas. Vamos ver alguns deles.
O parâmetro "caminho"
Este parâmetro é obrigatório e deve ser fornecido para cada módulo. É usado para especificar o caminho do diretório disponibilizado pelo próprio módulo.
O parâmetro "Comentário"
O parâmetro "Comentário" é opcional: podemos especificar uma string que será exibida perto do nome do módulo, quando o cliente solicitar uma lista dos disponíveis.
Faça um módulo leia ou escreva apenas
Por padrão, todos os módulos são criados como somente leitura. Isso significa que um cliente só pode usá -lo como fonte para a transferência. Esse comportamento pode ser alterado definindo o parâmetro "somente leitura" para não
ou falso
. O módulo também pode ser feito apenas com gravação, usando o Escreva apenas
parâmetro e fornecimento sim
ou verdadeiro
como valor. Se este último parâmetro estiver ativado, o cliente não poderá baixar arquivos do módulo. Para ler arquivos do módulo ou gravar, as permissões do Unix padrão também devem ser respeitadas; portanto, o usuário a transferência é executada como, deve ter permissão para executar a ação desejada.
Os parâmetros UID e GID
O uid
e Gid
Parâmetros combinados, defina os privilégios que a transferência terá. O primeiro é usado para definir o usuário, a transferência é executada como quando o daemon é executado como root (se o daemon for executado com os privilégios de um usuário normal, o usuário não mudará). O usuário pode ser identificado por seu nome de usuário ou seu ID numérico. O último define um ou mais nome de grupo ou ID do grupo a ser usado para a transferência.
O valor padrão para ambas as opções é ninguém
, o que significa que quando o daemon é executado como raiz, as transferências serão executadas com os privilégios do ninguém
usuário e o ninguém
Grupo (no Debian, o grupo ninguém não existe - não
é usado em vez disso).
O parâmetro "Use Chroot"
Usando o Use chroot
Parâmetro, podemos definir se o RSYNC deve fazer o CHROOT para o caminho do módulo definido antes que a transferência seja iniciada. Isso pode ser usado para aplicar a segurança, mas, para tirar proveito dela, o daemon deve ser configurado para executar com privilégios de raiz. Por padrão, esta opção está definida como sim
.
O parâmetro "Max Connections"
Este é outro parâmetro muito útil e é usado para definir o número máximo de conexões simultâneas suportadas pelo daemon. O valor padrão usado para o parâmetro é 0
, o que significa que nenhum limite está definido. Se o valor fornecido for um número negativo, as conexões serão completamente desativadas.
Exclua e inclua arquivos da transferência
Às vezes, podemos querer excluir alguns arquivos da transferência: podemos realizar a tarefa usando o excluir
parâmetro, que aceita uma lista de padrões separados por espaço. Os arquivos correspondidos pelos padrões não serão sincronizados. O incluir
O parâmetro funciona da mesma maneira, mas é usado para definir explicitamente inclusões.
Outra maneira de excluir ou explicitamente incluir arquivos é usando o excluir de
e incluir de
parâmetros. Com esses parâmetros, podemos especificar o caminho dos arquivos que contêm padrões de exclusão e inclusão, respectivamente. Os arquivos devem conter um padrão por linha.
O excluir
, incluir
, excluir de
e incluir de
Os parâmetros podem aparecer apenas uma vez dentro de um módulo.
O parâmetro "timeout"
Quando usamos o rsync
cliente, podemos fornecer o--tempo esgotado
Opção para definir um tempo limite de E/S máxima em segundos: Se nenhum dados for transferido no tempo especificado, a transferência será abortada. O tempo esgotado
opção do daemon rsync
pode ser usado para substituir o tempo limite definido pelo cliente. Isso pode ser útil para evitar esperar por um cliente morto indeterminadamente. O tempo limite é expresso em segundos: 0
é o padrão, e significa que não há tempo limite.
O “ignorar não legível” e “não compactam”
O ignore não legível
a opção é usada, instrua o rsync a ignorar arquivos que não são legíveis pelo usuário, a transferência está em execução como. O Não compacte
A opção, em vez disso, é usada para fornecer uma lista separada por espaço de padrões insensíveis a casos usados para selecionar arquivos que não devem ser comprimidos durante a transferência. Isso pode ser especialmente útil para evitar a compactação de arquivos já compactados.
Os parâmetros “Hosts permitem” e “hosts negam”
Usando o Os hosts permitem
e Os anfitriões negam
Parâmetros, podemos especificar uma lista de padrões separados por vírgula que serão comparados com os clientes HostName ou IP, para permitir ou negar acesso a eles, respectivamente. Os dois parâmetros podem ser combinados e aparecem juntos dentro de um módulo: os padrões de "permitir" são verificados antes dos "negar". Por padrão, todos os hosts podem se conectar.
Exemplo de uma configuração de módulo
Vamos fazer um exemplo e criar um módulo em um servidor RSYNC. A primeira coisa que devemos fazer é permitir o tráfego de entrada TCP
porta 873
. Se estamos usando o firewalld, podemos adicionar o pré-configurado rsyncd
Serviço para a zona que estamos usando:
$ sudo firewall-cmd --permanent-add-service rsyncd && sudo firewall-cmd--reload
Se estivermos usando o UFW, em vez disso, podemos executar:
$ sudo ufw permitir 873/tcp
Depois de configurarmos o firewall, podemos prosseguir e definir um módulo. Aqui está a nossa configuração:
[LinuxConfig] PATH =/MNT/DATA/RSYNC COMENTÁRIO = "Exemplo de um módulo de daemon rsync" somente leitura = false exclude = *.TXT
Chamamos nosso módulo de "LinuxConfig" e associamos o /mnt/dados/rsync
diretório para ele. Nós também fornecemos um comentário. Definimos o módulo legível e gravável, definindo o somente leitura
parâmetro para false e, através do excluir
parâmetro, fornecemos um padrão para excluir todos os arquivos com o .TXT
extensão.
Antes de usarmos nosso módulo, precisamos iniciar o daemon. Podemos executar o RSYNC como um daemon invocando o programa com o --Daemon
Opção, ou podemos simplesmente usar o Systemd para realizar a tarefa (sob o capô, o serviço Systemd executa o mesmo comando). Sob distribuições baseadas em Debian, o serviço é chamado rsync
; em Fedora e Archlinux, é chamado rsyncd
:
$ sudo systemctl start rsync
Para fazer o RSYNC iniciar automaticamente no Boot, devemos usar o SystemCTL habilitar
Subcomando:
$ sudo systemctl Ativar rsync
Nós definimos o /mnt/dados/rsync
diretório como de propriedade do ninguém
usuário e o não
Grupo (é uma máquina Debian). Aqui está o seu conteúdo:
$ ls/mnt/dados/rsync csv1.CSV Text1.txt text2.TXT
Como podemos ver, o diretório contém dois .TXT
arquivos e um .CSV
. Se usarmos o módulo como fonte na transferência, apenas o “CSV1.O arquivo CSV ”será incluído:
$ rsync -av rsync: // 192.168.0.39/LinuxConfig/ . recebendo lista de arquivos incremental ./ csv1.CSV
A exclusão também entra em vigor quando usamos o módulo como destino. Vamos, digamos, criamos o “csv2.CSV "e" Text3.arquivos txt ”em nosso diretório de trabalho atual:
$ toque csv2.CSV Text3.TXT
Se agora executarmos o RSYNC e usarmos nosso diretório de trabalho atual como fonte e o módulo como destino, podemos ver como o daemon se recusa a receber o “text3.arquivo txt ”, pois é correspondido pelo padrão de exclusão especificado:
$ rsync -av . rsync: // 192.168.0.39/LinuxConfig Enviando o erro da lista de arquivos incremental: Daemon se recusou a receber o arquivo "Text3.TXT" ./ csv2.CSV
Observe que nos comandos acima usamos um Rsync URL
Para especificar o endereço IP do servidor e o nome do módulo que queremos usar. Como podemos obter uma lista de todos os módulos disponíveis em uma máquina? É muito fácil, apenas executamos o comando rsync, especificando apenas o endereço do servidor no URL:
$ rsync rsync: // 192.168.0.39 LinuxConfig "Exemplo de um módulo de daemon rsync"
Todos os módulos disponíveis e os comentários associados serão exibidos; Nesse caso, apenas o "LinuxConfig".
Conclusão
Neste artigo, vimos como instalar e configurar o daemon rsync, em algumas das distribuições Linux mais usadas. Vimos e aprendemos a usar alguns dos parâmetros globais e específicos do módulo disponíveis para alterar o comportamento do daemon rsyncd. Finalmente vimos um exemplo de configuração de módulo. Para um conhecimento mais aprofundado de rsyncd
, Sempre podemos consultar o manual oficial. É apenas uma questão de correr:
$ MAN RSYNCD.conf
Tutoriais do Linux relacionados:
- Coisas para instalar no Ubuntu 20.04
- Uma introdução à automação, ferramentas e técnicas do Linux
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Coisas para instalar no Ubuntu 22.04
- Arquivos de configuração do Linux: os 30 primeiros mais importantes
- Mastering Bash Script Loops
- Download do Linux
- Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
- Como fazer bota dupla kali linux e windows 10
- Ubuntu 20.04 truques e coisas que você pode não saber
- « Exemplos sobre como usar o RSYNC para backups e sinconizações de dados locais e remotos
- Como instalar o Docker no Ubuntu 20.04 fossa focal lts »