Como aplicar automaticamente as alterações em uma pasta para outra?

2

Rodando o Ubuntu 12.04, eu trabalho software "produção" em certas pastas e então eu normalmente copio os arquivos que faço em outros caminhos onde eu faço o "deployment" .

Por exemplo, às vezes eu produzo alguns arquivos em /home/user/develop e quero que eles também passem para /media/ntfs . Além disso, por exemplo, eu trabalho em /home/user/develop , mas eu quero que eles vão para /var/www se eu estou testando materiais da web.

Assim, qualquer última pasta gerada ou qualquer lista de arquivos deve ser copiada.

Eu pensei primeiro que isso era sobre links simbólicos, mas eu acho que não é a melhor maneira de fazer isso, scripting?

    
por diegoaguilar 22.08.2013 / 00:44

2 respostas

3

rsync sincroniza coisas entre diretórios e até servidores diferentes. Ele inclui / exclui o suporte, etc. Se você quer que as coisas sejam realmente sincronizadas automaticamente , você pode executar o rsync com os parâmetros necessários.

Você pode colocar o comando e todos os seus parâmetros em um script e, em seguida ...

Você pode executar esse script em um trabalho agendado, se quiser que ele faça a cópia em um determinado intervalo, ou executar o script manualmente quando uma sincronização precisar acontecer e, por fim, ouvir os eventos do sistema de arquivos seu diretório relevante, usando inotify , para executar o rsync quando certas mudanças acontecerem no diretório.

Você pode fazer isso por um loop while que bloqueia o inotify, ou usando programas / scripts especiais projetados para fazer coisas como essa, por exemplo:

rsync-inotify: link

lsyncd: link

e assim por diante ...

    
por 22.08.2013 / 01:03
0

Você pode replicar um diretório para outro diretório com rsync . O Rsync não copia arquivos que já estão no diretório de destino com o mesmo conteúdo (ou mais precisamente, com a mesma data e tamanho).

rsync -a /home/user/develop/ /var/www/

A atualização do servidor ao vivo em tempo real não é uma boa ideia: se você estiver no meio de uma alteração e os arquivos não estiverem em um estado de funcionamento, não será necessário implantá-los. Note que a propagação com o rsync não é instantânea, então haverá uma pequena janela de tempo durante a qual alguns dos novos arquivos estão no lugar, mas alguns dos arquivos antigos ainda estão presentes.

O controle de revisão resolveria isso e também o ajudaria de outras maneiras. Quando você fizer alterações, confirme-as. No servidor live, faça uma atualização (ou busque ou o que seu software de controle de revisão chamar). O controle de revisão mantém um histórico de alterações e permite rastrear alterações em vários sistemas.

    
por 23.08.2013 / 02:50