Replicação de arquivos
Publicado por Ricardo Lino Olonca (última atualização em 22/05/2013)
[ Hits: 9.103 ]
Homepage: ricardoolonca.blogspot.com.br
Tenho um servidor de mídia com cerca de 2 TB de arquivos e precisava manter/criar uma réplica desse servidor para o caso de uma pane. E, claro, precisava manter os arquivos sincronizados.
Tentei algumas soluções, como rsync, mas este demorava muito e se fosse colocado no cron acontecia de encavalar vários processos do rsync. Tentei também usar o inosync, mas alguns arquivos de cache geravam problemas. Então criei esse script que deve ser colocado no /etc/init.d e rodar como serviço.
Basicamente ele roda com prioridade baixa, não afetando o desempenho do servidor. Pode fazer o sincronismo para vários servidores ao mesmo tempo beneficiando-se do cache de leitura do disco, e ainda impede que vários processos de rsync sejam encavalados. Em meu ambiente um arquivo leva cerca de 5 minutos para ser replicado para o outro servidor, mas esse valor ainda pode ser melhorado. A única ressalva é fazer com que o servidor origem se autentique no destino através de troca de chaves. Altere as variáveis de acordo com o teu ambiente.
#!/bin/bash ### BEGIN INIT INFO # Provides: rsync_server # Required-Start: networking # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Sincronismo dos arquivos entre os Frontend Master e Slave ### END INIT INFO # Feito do Ricardo Lino Olonca em 18/04/2013 # Versao Beta 0.1.1 ############################## # Variáveis # Pasta a ser copiada ORIGEM=/home/ricardo/ # Pasta destino DESTINO=/home/ricardoolonca/ # Pasta a serem excluídas da cópia # O caminho deve ser relativo a pasta ORIGEM EXCLUDE=" .aMule/ .VirtualBox/ .local/share/Trash/ Programas/ Música/ Vídeos/ .mozilla/firefox/ht1sguqp.default/Cache/ .wine/ .cache/ .aqemu/ .ssh/ " # Prioridade do processo # Quanto maior, mais lento ele será NICE=19 # Caminho do programa rsync RSYNC=/usr/bin/rsync # Tempo de espera para uma nova cópia, em segundos TEMPO=60 # Usuário usado na sncronização USUARIO=ricardoolonca # Servidor de destino SERVIDORDESTINO=' 10.50.0.32 172.20.1.127 ' ############################## # Inicio do programa processo(){ for i in $EXCLUDE do x="--exclude=$i $x" done if [ -r $ORIGEM ] && [ -x $RSYNC ] then while true do for i in $SERVIDORDESTINO do nice -$NICE $RSYNC -avrp --delete $ORIGEM $USUARIO@$i:$DESTINO $x >/dev/null 2>/dev/null & done for i in $SERVIDORDESTINO do while true do ps wax | grep rsync | grep $i 2>/dev/null >/dev/null if [ $? -eq 0 ] then sleep 60 else break fi done done sleep $TEMPO done else echo Há um erro na configuração fi } case $1 in "start") processo & ;; "stop") echo Parando o daemon de sincronização dos arquivos do site id=`ps wax | grep $0 | grep start | sed s/^" "//g | cut -d" " -f1 | head -1` kill $id ;; "restart") ps wax $0 stop sleep 5 $0 start ;; "status") ps wax | grep $0 | grep -v grep | grep -v status >/dev/null if [ $? -eq 0 ] then echo Daemon de sincronismo dos arquivos rodando else echo Daemon de sincronismo dos arquivos parado fi ;; *) echo "Daemon de sincronismo dos arquivos do site" echo "Uso: $0 <start|stop|restart|status>" esac
Backup de diretórios do sistema Linux
Backup do PostgreSQL 8.3 e aviso por e-mail
Backup e envio do arquivo + md5sum para o FTP da escolha do usuário
Fazendo backup durante a semana em pastas distintas, equivalentes ao dia da semana
DriveTool.sh: um script para cópia rápida e segura de arquivos para unidades flash USB
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Olha que maravilha, Arch no C2D 7400, 2GB de RAM, vídeo onboard e no G... (1)
Mikrotik não abre o webmail-segur... da Locaweb (0)
Jogos baixados na Central de Aplicativos mas que não abrem (1)
debian com wayland, configuracao de teclado. Mudou Tudo! [RESOLVIDO] (1)