Como arquivar automaticamente um diretório?

47

Eu quero fazer a sincronização unidirecional.

Estou tendo Folder Ano meu computador que é constantemente atualizado com o conteúdo.
Outro Folder Bé usado para fins de backup que estão no disco rígido externo.

Agora, o que espero é que qualquer item extra que esteja presente na pasta A vá para a pasta B. No entanto, algo que esteja presente em B e NÃO em A "" NÃO será copiado para A "".

Em poucas palavras, a pasta de backup pode copiar tudo da pasta de origem; no entanto, nada deve ser copiado da pasta de backup para a fonte.

Bhavesh Diwan
fonte
Isso não é a sincronização ....
Braiam
@Braiam como é chamado então? Eu não conseguia inventar uma palavra como o OP. Se você souber, por favor diga.
Jo Smo
@JoSmo copy? Arquivo? Cópia de segurança?
Braiam 14/10
@Braiam obrigado, agora me sinto estúpido por perguntar. : D
Jo Smo 14/10

Respostas:

63

Soa como uma tarefa perfeita para o rsync

sudo rsync -az /path_to/A /path_to/B

-um modo de arquivo (implica recursivo, copiar links simbólicos como links simbólicos, preservar o proprietário, tempos de modificação, grupo, proprietário, arquivos especiais e de dispositivo)

-z comprime os dados

Se você deseja remover arquivos excluídos em A dos arquivos B, use a --deleteopção

Para informações adicionais, consulte:

https://help.ubuntu.com/community/rsync

Você pode executar o rsync a partir do cron

sudo crontab -e

Adicionar uma tarefa horária

@hourly rsync /path_to/A /path_to/B

https://help.ubuntu.com/community/CronHowto

Pantera
fonte
7
Se houver pastas dentro de pastas, você precisará usar a opção -r.
John S Gruber
2
Estou um pouco atrasado para a festa, mas para executar o script de sincronização quando o disco rígido estiver conectado, você deve usar o udev. Confira esta pergunta há um tempo atrás. askubuntu.com/questions/25071/...
jackweirdy
11
@JohnSGruber a opção -a implica recursiva, eu vou editar a resposta para apontar isso
Tomas
11
se os arquivos estiverem na mesma máquina -zapenas retardar o processo
Postadelmaga
11
@JoSmo - askubuntu.com/questions/476041/… e askubuntu.com/questions/609968/… e man rsync e faça uma nova pergunta, se necessário, em vez de perguntar nos comentários.
Pantera
15

Eu sugiro usar o rsync para esse fim. O Rsync é extremamente rápido, estável e versátil. Há uma boa introdução em http://help.ubuntu.com/community/rsync

Se desejar, existe um front end gráfico opcional: grsync

 sudo rsync -azv --exclude 'dir1' /home/path/folderA/ /home/path/folderB

O comando acima copiará da pasta A para a pasta B, excluindo dir1. As bandeiras são

-a preserves time stamps
-z is to enable compression
-v verbose

Existem muitas outras opções disponíveis.

JIm
fonte
8

Eu sempre achei a Unison muito útil. Ele possui uma interface baseada em texto ou GUI e várias opções diferentes para ajustá-lo ao que você deseja (com um pouco de brincadeira). Demora um pouco de tempo para fazer a primeira sincronização, mas depois disso é brilhante. Você pode fazer a sincronização unidirecional, como quiser, mas isso acontecerá automaticamente. Ele também pode excluir do backup ou não, conforme você escolher.

Você também pode encontrar problemas com permissões que são suportadas no formato de arquivo ubuntu, mas talvez não no disco rígido externo (dependendo se o disco rígido externo será usado em uma máquina Windows, isso pode ser uma boa coisa), então convém sincronizar sem as permissões potencialmente.

De qualquer forma, o mais interessante é que, com o tutorial, é relativamente simples configurá-lo uma vez e, posteriormente, é uma interface GUI sempre que você deseja fazê-lo.

Aqui estão algumas informações sobre isso: http://www.ubuntugeek.com/unison-file-synchronization-tool.html

E aqui está o tutorial: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#tutorial

Dr Xorile
fonte
4
rsync -avPr --ignore-existing /home/username/Research/ /path/to/other/folder/on/hdd/

Isso sincronizará e copiará apenas os dados que não existem no diretório /other/folder/on/hdd/

dearN
fonte
2

Concordo com as outras respostas, você pode usar no rsync no Terminal ou nas interfaces Grsync , luckyBackup , Conduit ou o famoso Unison .

Outro ótimo aplicativo é o Krusader (um gerenciador de arquivos de painel duplo para KDE), no menu Ferramentas, você pode encontrar "Sincronizar diretórios", é muito útil.

Em última instância, você pode instalar o Wine e instalar outro ótimo gerenciador de arquivos em painel duplo como o Total Commander .

De qualquer forma, você tem muitas opções e todas elas estão presentes no Ubuntu Software Center.

Raúl F. Castro S.
fonte
1

Eu recomendaria o Conduit para sincronização simples. Está disponível o sistema de software. Faz exatamente o que você está procurando

jasonwert
fonte
0

Existe uma ferramenta shell bastante útil chamada rsnapshot - http://www.rsnapshot.org/ - utilitário de captura de tela do sistema de arquivos para fazer backups de sistemas locais e remotos. que usa rsync e links físicos, o que torna possível manter vários backups completos do sistema de arquivos disponíveis instantaneamente. Basta fazer sudo apt-get install rsnapshote verificarinfo rsnapshot

user1180249
fonte
0

Você pode sincronizar arquivos dentro de dois diretórios:

rsync -rv /path/to/directory1/ /path/to/directory2

Fazer rsync -rv /path/to/directory1 /path/to/directory2criará directory1dentro directory2, como este/path/to/directory2/directory1/[files]

Você pode executar a seco usando o -ninterruptor, como estersync -rnv /path/to/directory1/ /path/to/directory2

Referência: https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps

subhojit777
fonte
0

Se você deseja uma interface gráfica em um sistema altamente configurável, experimente o FreeFileSync. Veja, por exemplo: http://linuxnorth.wordpress.com/2011/11/29/file-and-folder-synchronization/ Em particular, você deseja a opção "Atualizar" para sincronização que irá "Copiar arquivos novos ou atualizados para pasta direita ", ou seja, copie da pasta esquerda para a pasta direita em uma exibição de duas janelas.

CentaurusA
fonte